IDA调试so
- 环境配置
- 一台 root 的手机,与电脑在同一局域网
- IDA 7.0
- Android 环境
- 准备工作
- 将IDA pro 目录下的\dbgsrv\android_server 上传到手机 /data/local/tmp 目录下。
adb push D:\Program Files\IDA 7.0\dbgsrv\android_server /data/local/tmp
- 修改权限
将android_server修改成可执行文件C:\Users\Jeqee>adb root C:\Users\Jeqee>adb remount remount succeeded C:\Users\Jeqee>adb shell root@cancro:/ # cd data/local/tmp 127|root@cancro:/data/local/tmp # chmod 777 android_server root@cancro:/data/local/tmp # ls -l -rwxrwxrwx root root 589588 2017-09-14 15:08 android_server
- 开始调试
手机上打开要调试的目标app。
-
执行
./android_server
image.png
这个cmd窗口不要关闭。 -
端口转发
另外打开一个cmd窗口,执行adb forward tcp:23946 tcp:23946
image.png
- 打开 IDA 进行调试
打开用管理员身份打开IDA。
-
IDA quick start界面选择 Go
image.png Attach手机
Debugger -> Accach ->Remote ARMLinux/Android debugger
image.png
输入手机IP,端口号默认
image.png
OK之后,选择调试的进程
image.png
这里可以使用快捷键 Ctrl+F 搜索。
- 从
Modules
窗口中选择模块
选择需要调试的so。
image.png
图中,Base
一栏是so的基地址。
双击点击需要调试的so,进入so内部,找到需要调试的方法,按F2
断点
image.png
然后就可以开始愉快地调试了。
- 快速定位地址
通过静态方式打开so,红框中的都是相对地址,动态调试时,基地址 + 相对地址 = 实际地址,快捷键G
,输入实际地址,就可以快速定位。
image.png
AF048000 + 1C144 = AF067144
image.png
快捷键 G
image.png
剩下的需要继续摸索。