知识点
1.getByte()
功能:返回字符的ascii码值
2.equals()
功能:用于将字符串与指定的对象比较。
结果:相等时返回true,反之返回false
下载apk文件
使用jeb3打开反编译代码
分析,程序将editText里的内容进行一次encode.check检查,通过就显示correct
那核心代码应该在encode函数里
这个函数逻辑很简单,就是对输入的长度为16的字符串的每个字符进行运算,若运算结果字符没有变,就通过。
解方程太复杂了,编写一个简单的python脚本进行爆破
byte = [23, 22, 26, 26, 25, 25, 25, 26, 27, 28, 30, 30, 29, 30, 0x20, 0x20]
for i in range(16):for v1 in range(200):if ((v1+byte[i])%61)*2-i == v1 :print(chr(v1),end='')
得到flag XMAN{LOHILMNMLKHILKHI}