Android IDA 7.0 动态调试攻略
1.准备
a. 下载并安装 IDA 7.0版本
b.下载并安装JDK,因为需要使用jdb命令调试应用。
c.准备已经获得root权限的手机或者模拟器,我使用的是Android 6.0 小米的系统。
2.开始
a. 复制IDA 安装目录下dbgsrv 文件里面的相应的server文件到 手机内存储的 /data/local/tmp 目录下。对于比较新的手机,一般都是arm64的,所以我复制的是android_server64 。如果您对data目录缺少访问权限,需要使用chmod命令添加完全的访问权限。
b. 控制台输入 adb shell su 命令获取管理员权限
c. cd /data/local/tmp 进入server存放目录 ,输入chmod 777 <你拷贝的文件名> 获取执行权限
d.执行ida的server文件。执行方法是:/data/local/tmp/<你拷贝的文件名>
e. 新开一个命令窗口 ,执行 adb forward tcp:23946 tcp:23946 命令 端口转发
f.adb shell am start -D -n 包名/activity路径 启动应用
g.打开IDA64 ,菜单 debugger->attach->Remote ARM Linux/android debugger.
h.设定debug options,如下图所示。
i. 在弹出的进程选择框 选择要调试的进程.
j.手机上的App开始运行后一定要点击IDA 的开始运行按钮。如果有反调试的话,一定要先下断点,不然一运行就崩溃了,一切重新来过。
k.打开DDMS,查看你调试的应用的所用端口,然后执行:
jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700。8700根据具体的实际情况进行修改。
好了。可以开始调试了 F7进入函数,F8单步调试,F9跳到下一个断点,F2下断点,G调到函数地址。