首页
社区
课程
招聘
第六题 Ericky-apk Writeup
发表于: 2017-6-12 23:18 3679

第六题 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直播授课

收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//