Java层分析
入口为com.example.test.ctf02.MainActivity
MainActivity
点击按钮,获取输入,然后调用new Check().checkPassword(str)
进行比较
相等的话前往MainActivity2
Check
长度要等于12,
要满足等式
0x30 == 0xff - i - 100 - pass[i]
pwd = ""
for i in range(12):
pwd += chr(0xff - i - 100 - 0x30)
print(pwd)
解得第一层密码为
kjihgfedcba`
MainActivity2
MainActivity2将编辑框的输入,sendBroadcast
广播发送出去
可以看到AndroidMenifest中广播接收者的定义在com.example.test.ctf02.GetAndChange
类中
GetAndChange
接收到广播后只是启动了NextContent
NextContent
change方法:
读取img.jpg或者timg_2.zip,并解析成图片显示
Flag
在apk中找到相应的文件,后缀名改成png
打开,得到flag
则flag为flag{08067-wlecome}