本帖最后由 wnagzihxain 于 2016-8-4 21:00 编辑
评论里不少同学说看不懂:没有安卓逆向基础的同学不建议看着一篇
想学习逆向的同学先去看繁华的入门教程,那几篇写的还不错的
有了一点逆向基础再来看这一篇动态调试就会比较容易了
看到了有同学对动态调试APP有疑惑,在回帖中也没办法讲清楚,所以就在这里分享一下自己的动态调试方法
我使用的是IDEA+smalidea+baksmali
讲讲这些工具的作用:
IDEA:开发安卓的好帮手,Android Studio就是根据这个改的
smalidea:一个可以调试smali的插件,搜一下就可以找到的,怎么安装插件就不说了
baksmali:生成smali
IDA动态调试APP不是不可以,我测试的时候不能查看寄存器的值,有一点不好用(可能是我不会用,反正是没有看到寄存器的值)
IDEA这个方法还是不错的,可以下断点,有寄存器的值,界面也是很友好,断点位置非常明确,单步调试的体验也非常好
所以,开始吧
很多时候,安卓端应用,不仅仅是恶意APP,都会对自身资源进行加密,这里先不讨论加壳之类的
我们直接反编译出来,发现里面的字符串都被加密了,需要在动态运行的时候调用某些解密算法进行解密,比如作者自己写的解密方法,或者安卓自带一些加解密的算法,这样就比较尴尬了,静态分析就什么都看不出来了
所以在一些比较正常的APP分析中,动态分析结合静态分