准备工作
- 准备工作
- 一台Mac os/Window系统的电脑
- 一部root的手机/或者(root的Android模拟器)
- IDA Pro
- adb
- 需要进行调试的APK
演示环境
- Mac os系统的电脑
- genymotion Android 模拟器
- IDA Pro 7.0 32位
开始
- 将手机通过数据线连接到电脑
- 将IDA安装目录下的dbgsrv目录下的android_server发送到手机中。
adb root
adb push /Applications/IDA\ Pro\ 7.0/ida.app/Contents/MacOS/dbgsrv/android_x86_server /data/local/tmp/android_server
注:此处的android_server的架构根据打开的IDA架构一一对应的,即IDA打开的是64位,则推送64位的android_server,如果你模拟器用android_x86_server
- 给android_server赋予755权限
adb shell
chmod 755 /data/local/tmp/android_server
- 启动调试服务器
/data/local/tmp/android_server
注:调试服务器的默认监听端口为:23946
5.进行端口转发
新开一个终端端口
adb forward tcp:23946 tcp:23946
- 在手机上运行要启动的app,并打开IDA pro
- 依次点击菜单栏上的"debugger - attach -remote linux deugger",在弹出的窗口中填充以下内容:
如果是真机选择下面
remote Armlinux/android debugger
Hostname:localhost
Port:23946
image
8.在模拟器中启动app, 在弹出的窗口中选择要调试的app的数据包名,然后点击"ok"按钮
image- 这个时候ida会把app挂起,在ida界面按下ctrl+s找到我们需要调试的so文件,同时记录下该文件的加载基址。然后点击"OK"按钮关闭对话框。
- 按下快捷键“G”,然后输入基址+文件偏移所得地址,点击“OK”,就跳转到so文件需要下断点的位置。这个时候按下F2设置断点。当app执行到此处时便可以断下来了。
网友评论