- 将
dbgsrv/android_server64推送到/data/local/tmp
adb push android_server64 /data/local/tmp/ida_android_server64- 授予权限
adb shell chmod +x /data/local/tmp/ida_android_server64- 运行
ida_android_server64
adb shell
su
cd /data/local/tmp
# 高版本手机需要这一步
export IDA_LIBC_PATH=/apex/com.android.runtime/lib64/bionic/libc.so
./ida_android_server64- 启动APP
adb shell am start -D -n com.test.fgum/.MainActivity- IDA附加
adb forward tcp:23946 tcp:23946Debugger -> Attach -> Remote ARMLinux/Android debugger- hostname 填写 localhost/127.0.0.1
- 点击OK,
Ctrl+F搜索到目标进程,双击开始附加,等待附加完成 Debugger -> Debugger Opitions设置暂停时机,比如Suspend on library load/unload
- 查看pid
adb shell "ps -ef | grep com.test.fgum"- 转发jdwp
adb forward tcp:8700 jdwp:16851- jdb连接
jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700- 开始调试
此时切换到IDA按F9,就可以开始调试了,然后会依次在加载so的时候停止下来
注意事项:目标APP应当配置android:extractNativeLibs="true",否则IDA无法命中APP的so加载,只能看到APK被加载了