CTF-Bugku-安卓篇1signin Writeup(分别用静态分析和动态调试)
注:作者是CTF初学者,边学习边记录,如有错误或疏漏请批评指正,也请各位大佬多多包涵。
CTF-Bugku-安卓篇1signin Writeup
Bugku安卓部分第一题,第七届山东省大学生网络安全技能大赛的题目,属于Android逆向分析。(常用工具:安卓模拟器、JEB、Cyberchef、Androidkiller)

题目文件:https://ctf.bugku.com/files/109fa055c682e810684427c123a0833b/sign_in.zip
静态分析方法:
1.下载附件解压缩,用模拟器安装打开apk,随便输入测试,提示try again

2.用jeb打开,找到MainActivity,右键解析成java分析

3.根据提示try again,分析checkpassword部分,往下看,getflag中getString值来自0x7F0B0020。即资源id为0x7f0b0020
4.在res/values文件夹中找到public.xml和strings.xml,搜索id对应的string,找到991YiZWOz81ZhFjZfJXdwk3X1k2XzIXZIt3ZhxmZ


5.根据之前分析,将值reverse(字符首尾逆向),再进行base64解密,得到flag。


flag{Her3_i5_y0ur_f1ag_39fbc_}
动态调试方法:
1.用AndroidKiller打开,在AndroidManifest.xml中加入android:debuggable=”true”,保存并编译,做好调试准备

2.在模拟器中安装打开编译过的apk,进行测试,可以正常运行。

3.用JEB进行动态调试,附在模拟器进程上。

4.在MainActivity中,Congratulation前下断点,运行后,将寄存器v1的type改成string,显示出flag。

5.在模拟器运行的apk中输入测试,验证通过。

动态调试与静态分析得到的flag一致
flag{Her3_i5_y0ur_f1ag_39fbc_}

浙公网安备 33010602011771号