-
-
[原创]题目3解题思路
-
发表于: 2015-1-25 13:54 2357
-
1.app 安装到手机端,启动gdbserver,attach到主进程,程序崩溃,猜测有antidebug。
2.通过ls proc/pid/task,查看引用相关线程信息,程序崩溃。
3.根据系统运行特性,线程tid信息一般为pid+n,使用gdbserver attach到一个tid上,发现成功连上。
4.使用gcore dump出内存信息。
5.在内存dump中查找关键字Lcrackme,dex.035,ENDIANTAG等信息,确定dex位置及大小,并将数据导出。
6.对dex进行修复,重打包成一个新的apk。
7.提交到我们开发的分析平台上,查看分析结果:http://akana.mobiseclab.org/index.jsp?type=result&md5=27879e3820a3ca5487e66e7b3417f6a170f0dcb5d9ccf4a4c619b24bbc6e3ab080dad30f2c3bffe1def2bd74749ce23b
8.根据交叉索引信息,可以看出在b.java的run方法是关键代码所在,根据代码逻辑,可以看出密码共需要6个字母(由输入的莫斯密码转换获得),前两位的hashcode必须为3618,且ascii码和为168,后面4为则为e.java和a.java中annotation的拼接,为字符串“7e1p”。
9.前两位通过穷举可以得知前两位是s5,即最终密码为s57e1p,根据e.java中的编码进行转化即可得到正确答案。
2.通过ls proc/pid/task,查看引用相关线程信息,程序崩溃。
3.根据系统运行特性,线程tid信息一般为pid+n,使用gdbserver attach到一个tid上,发现成功连上。
4.使用gcore dump出内存信息。
5.在内存dump中查找关键字Lcrackme,dex.035,ENDIANTAG等信息,确定dex位置及大小,并将数据导出。
6.对dex进行修复,重打包成一个新的apk。
7.提交到我们开发的分析平台上,查看分析结果:http://akana.mobiseclab.org/index.jsp?type=result&md5=27879e3820a3ca5487e66e7b3417f6a170f0dcb5d9ccf4a4c619b24bbc6e3ab080dad30f2c3bffe1def2bd74749ce23b
8.根据交叉索引信息,可以看出在b.java的run方法是关键代码所在,根据代码逻辑,可以看出密码共需要6个字母(由输入的莫斯密码转换获得),前两位的hashcode必须为3618,且ascii码和为168,后面4为则为e.java和a.java中annotation的拼接,为字符串“7e1p”。
9.前两位通过穷举可以得知前两位是s5,即最终密码为s57e1p,根据e.java中的编码进行转化即可得到正确答案。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
他的文章
- [原创]第一题解题思路 2912
- [原创]第二题解题思路 3064
- [原创]第三题解题思路 5108
- [原创]题目3解题思路 2358
- [原创]题目2解题思路 2129
谁下载
看原图
赞赏
雪币:
留言: