前言
总结一下android动态调试的方法,分别是java层和native层,java层主要用到的工具是android studio,而native层用ida进行动态调试。
安卓动态调试方法总结
Java层动态调试
使用baksmali.jar(可以在网上找到)反编译apk
Android studio打开生成的smali文件
把src文件夹设置为srouce root
在程序中下断点
添加remote,端口设置为8700
打开ddms,选中要调试的程序
选择android studio的debug程序
连接成功
运行,停在断点处
变量窗口
寄存器窗口
可在代码中选择要看的寄存器,右键,选择add to watches查看寄存器值
native层动态调试
- 复制文件,修改权限,以Root权限运行android_server。
adb push android_server /data/local/tmp/
cd /data/local/tmp/
chmod 755 android_server
./android_server
- 端口转发
adb forward tcp:23946 tcp:23946 //windows 控制台下转发window 到模拟器或者手机的
启动程序,设置process options
选择attach process
ida就挂载上去,此时可以通过搜索module.list找到我们自己编写的so函数,然后可以下断点进行调试