ida调试so
在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,的第一种方法