Android逆向调试工具

时间:2021-12-23 10:54:28

参考:
http://bobao.360.cn/learning/detail/3126.html
说起Android 逆向,就不得不提到常用的逆向分析神器了,IDA,jadx,Android Killer,JEB。
但是jadx的缺点也很多,速度较慢,且不支持变量,方法重命名等等,在针对混淆代码分析时有些力不从心,这里就推荐另一款工具JEB。

参考:
http://balis0ng.com/post/android/2016-11-27
JEB是Android应用静态分析的de facto standard,除去准确的反编译结果、高容错性之外,JEB提供的API也方便了我们编写插件对源文件进行处理,实施反混淆甚至一些更高级的应用分析来方便后续的人工分析.

参考:
JEB动态调试apk
JEB是一个功能强大的为安全专业人士设计的Android应用程序的反编译工具。用于逆向工程或审计APK文件,可以提高效率减少许多工程师的分析时间。

参考:
Android 动态调试原理浅析
首先简单总结下,目前在Android的动态调试主要有这么几种姿势:

smali插桩

较为麻烦的方式,在smali代码中插入自己的代码来做log输出等达到调试的效果

IDA调试

IDA可以支持调试dex和so,但是并不能*切换,经过尝试,可以通过开两个IDA分别调试dex和so来达到这个效果

JEB调试

2.2.x以上已经支持dex和so的完美调试,但是貌似不能调试so库中的JNI_Onload以及.init中的函数?

gdb调试

gdb+gdbserver 可以用来调试so库

android studio调试

可以调试smali,可以调试ndk但是貌似不能在无源码的情况下调试so,都是通过插件的方式实现的貌似,具体没做尝试

andbug开源项目

貌似不是很好用,忽略

xposed hook

只能进行函数开始和结束地址处的hook?这个也需要尝试一下