在IDA的主目錄 dbgsrv 目錄下 ,找到 android_server,拷貝到手機的 data/local/tmp/ 目錄下
adb push (android_server的目錄) /data/local/tmp
adb shell chmod 755 /data/local/tmp/android_server
adb shell
su
cd data/local/tmp
./android_serve
adb forward tcp:23946 tcp:23946
打開ddms
以調試的方式啓動程序
adb shell am start –D -n 包名/類名
Ddms可看到被調試程序前面爲紅色
打開IDA,把so文件拖入ida,設置斷點:
接着
選擇ida菜單Debugger -> Remote ARM Linux/Android debugger
Debugger -> Process options
Debugger -> Attach to process
選擇要進行調試的APP
一路ok
然後ida左上角點擊運行
緊接着命令行運行
jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=XXXX(DDMS查詢到的端口號,一般ddms進行轉發後的端口都是8700,此命令行用來恢復程序運行)
在apk中任意輸入數字
點擊按鈕,發現ida已經斷下
就可以F8單步走啦
以上爲先下斷點再attach,運行後可以直接停在斷點處
也可以先attach再下斷點,這樣不需要糾結手機用哪個對應cpu的so文件:
對應教程在https://www.cnblogs.com/ddms/p/8820044.html,的第一種方法