下载附件之后 改后缀为.apk
本来是直接载入jd-gui的 结果不好看明白代码
那我们就先放到安卓模拟器运行一下看看
输入123456789
发现Wrong Key
载入Androidkiller
第一步:搜索Wrong
第二步:搜索flag_result_no
第三步:搜索0x7f060023
得到三个好玩的
发现0x7f060025对应yes 猜测这个id对应的是正确的路
<public type="string" name="flag_result_no" id="0x7f060023" />
<public type="string" name="flag_result_none" id="0x7f060024" />
<public type="string" name="flag_result_yes" id="0x7f060025" />
这次对照着这个类 就可以很明白了
将2131099685转成十六进制 得到0x7f060025 即yes
那么我们就可以知道关键就在i()这个方法里
那就对i()方法进行分析
大致意思就是说先创建一个数组a1 令长度与数组p一样
for循环使a1[i] = p[i] ^ q[i](每位异或赋值给a1的每位)
接着令k 等于a1[0]
由a1[k + j] != 0得到j
最后再来一个循环赋值得到flag
具体直接看py代码:
验证一下 成功!