汤姆的苹果——bugku
解题过程
首先,看MainActivity,猜测b中handleMessage是判断最终条件,onClick是检验flag方法
然后查看引用输入字符串obj的a类中,doInBackground应该是对输入字符串进行解密
查看doInBackground引用的b类
可以看出这是对字符串的一个异或
再去看a类中的onPostExcute方法,以及除了a、b类以外的c类,猜测这是一起为最后为检测结果进行判定的方法
c类,可以看出这是一个比较结果的方法
程序逻辑
输入flag–>进入a类不断进入b类进行循环–>进入c类进行结果比较
解题脚本
由于按照程序原本的逻辑,我写出的脚本无法生成flag,且网上暂时没有该题的writeup,我只好使用另一种方法。
程序的逻辑是将字符串不断地进行异或,最后的结果其实相当于进行一次异或,而这一次异或的数字是未知,因此可以写一个循环去爆破它。
1 | final = ['z', 'p', '}', '{', 'g', 'v', '}', 'u', 'o', 't', 'z', '$', '%', '.', '/', '(', '.', '-', '/', 'v', 'w', 'v', |
flag{jaishf89234213jkjh}
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 hahbiubiubiu!