1、安装Android Studio。
2、查看目标包最低的API版本,aapt.exe list -a xxx.apk 中的 minSdkVersion,如 android:minSdkVersion(0x0101020c)=(type 0x10)0xf,API最低要求为15。
3、SDK Manager 下载对应的API、SDK,并下载虚拟机Image, Android L 之后的AVD不能运行非PIE,切记切记。手机能不能挂,这个随缘。
4、使用 AVD Manager 建一台虚拟机,需要设置储存卡,并运行。
5、adb install xxxx.apk
6、解包 xxxx.apk 查看activity,记下来。
7、安装 IDA,版本最高点。
8、IDA 安装目录 .\dbgsrv, adb push android_server /data/local/tmp, 记得 chmod 777 android_server。
9、adb shell, su, 运行android_server。
10、映射端口 adb forward tcp:23946 tcp:23946
11、am start -D -n com.xxxx.xxxxxx/xxx.xxxxx.AppActivity
12、IDA,debugger, Android,localhost:23946,options勾上 Suspend on process、thread、library,OK,OK。
13、选中实例 com.xxxx.xxxxxx, PID记下。
14、启动 ddms,选中实例,或 adb forward tcp:8700 jdwp:PID。
15、jdb -connect com.sun.jdi.SocketAttach:port=8700,hostname=localhost
16、在IDA run,自由发挥,简单用用和一般软件没有区别,其实就是在适合的地方加断点,在Module窗口可以选择对应的Module,Thread亦然。
17、IDA的Hex View可以右键绑定到 register, F5可以转换成伪C代码。