-
-
[原创]题目3解题思路
-
发表于: 2015-1-25 13:54 2371
-
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中的编码进行转化即可得到正确答案。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
他的文章
- [原创]第一题解题思路 2923
- [原创]第二题解题思路 3078
- [原创]第三题解题思路 5139
- [原创]题目3解题思路 2372
- [原创]题目2解题思路 2145
谁下载
看原图
赞赏
雪币:
留言: