IDA遠程調試真機app
第一步:啟動 android_server
,并修改端口
# 啟動android_server
./android_server -p31928
第二步:端口轉發、掛起程序
# 端口轉發adb forward tcp:31928 tcp:31928
# 掛起程序
adb shell am start -D -n com.qianyu.antidebug/com.qianyu.antidebug.MainActivity
第三步:打開Monitor.bat文件(該文件位置:SDK\android-sdk\tools)
看到我們要調試的程序,其中 8636 是調試端口,8700 是映射端口。
第四步:IDA附加程序、設置Debugger Options參數、程序首次運行
注意,這里要調試的ip選擇127.0.0.1
選擇要調試的程序
等待附加成功,看到 PC 指令指向 libc.so 即代表附加成功
下面設置 Debugger Options 參數
運行,點擊IDA左上角的三角符號,運行程序,這里并不一定能夠一次運行到我們要調試的程序,但是不要著急,在這里我們只點擊一次運行。
當看到IDA上方顯示running,即代表運行成功
第五步:通過 JDB(Java Debugger)與遠程 Java 虛擬機(JVM)建立調試連接的命令
# port端口是上面Monitor顯示的程序調試端口
jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8636
此時,看到IDA的LR指令和PC指令指向一處,同時你手機上的程序界面也發生了變化
查看 IDA 輸出的 日志,發現加載了我們要調試的 odex 文件
第六步:多次運行 IDA
注意:如果找不到我們調試的so文件,一定要多次運行指導加載出so文件
多次運行 IDA 左上角的符號,直到日志中顯示加載了要調試的 so 文件
多次點擊運行后,終于加載到要調試的so文件了
在Modules模塊中檢索我們要調試的 so 文件,并點擊進入
在 libantidebug.so 文件中檢索 JNI_Onload 函數,并進入
下面就可以調試so文件了