-
-
第六题 Ericky-apk Writeup
-
发表于: 2017-6-12 23:18 3679
-
这道题算法较为简单,但java层和so层都加了混淆,对分析有些影响。
首先看java层。用JEB反编译apk文件会发现,MainActivity中许多变量都被一些非常长的标点符号组成的变量名替换了。不过JEB可以重命名变量名,将相应变量名重命名后代码就比较清晰,如下图所示。
代码的含义就是获取输入框的内容并将它传递给utils.check函数进行判断,如果判断结果为真则成功,否则失败。utils.check函数内容如下。
其本意就是加载一个so文件然后调用其导出函数check对输入进行判断。从apk解包的文件中可以找到名为librf-chen.so的文件。
接下来是对so文件的调试。用ida附加apk调试时发现无法附加,因此选择使用调试模式启动程序,之后用ida附加进行调试。命令如下:
adb shell am start -D -n com.miss.rfchen/com.miss.rfchen.MainActivity
进入so文件中,发现onload函数中调用了ptrace,应该是用于阻止附加调试,之前无法附加调试的原因应该就在这。
过掉这一步后在check函数下断,输入文本进入check函数。函数中通过如下图的多次跳转进行混淆,影响分析。不过由于主要算法处理函数特征较为相似,所以容易由某个函数推出所有函数。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
他的文章
- 第七题 不问少年crackme Writeup 3575
- 第六题 Ericky-apk Writeup 3680
- 第五题 独行孤客CrackMe Writeup 3316
- 第四题 ReeHY-main Writeup 5411
- [原创]第三题 爱琴海CrackMe WriteUp 5797
看原图
赞赏
雪币:
留言: