Android crackme_0x02
文章目录
描述
What if JD-GUI doesn’t show you the password?
目标
找到Flag
APK下载
https://yhxx.lanzoub.com/ikyBX0mj4kab
题解
首先打开APP看一下,可以看到是输入密码点击SUBMIT来获取Flag

用Jadx-GUI打开APK看一下源码,在MainActivity
中找到了SUBMIT
按钮绑定的onClick
函数。
在①中通过FlagGuard().getFlag()
函数来根据获取文本框中输入的password
和ApplicationContext
得到flag
。
②中Flag
不为空则展示Congratulations!
和Flag
。

进入FlagGuard().getFlag()
,发现只要传入的str
(即输入的password
)与Data().getData(context)
相等就会返回②所计算出的flag,现在只需要看Data().getData()
就可以拿到密码。

进入Data().getData()
,发现函数需要获取到ApplicationContext
中的字符串来当做password
。

追踪进去后我们发现R.string.secret的值是一个地址,这显然不是明文密码,那么我该何看到密码呢?

Android的字符串资源都存储在/res/values/strings.xml
中
可以使用apktool工具解压apk文件查看:
|
|
或者直接在Jadx-GUI的路径/资源文件/resources.arsc/res/values/strings.xml
中查看。
打开xml文件后可以看到名为secret的字符串值:s0m3_0th3r_s3cr3t_passw0rd
即为密码。

在文本框输入s0m3_0th3r_s3cr3t_passw0rd
即可拿到flag
。

文章作者 Wen
上次更新 2023-04-20