安卓动调
调试前先在XML文件修改调试权限为true。

IDA调试SO文件
根据手机和 .so文件的位数选择合适的IDA服务文件(在IDA安装目录的 dbgsrv 目录中),将其推送至手机根目录 data/local/tmp 下,可以重命名为好记的名字(如ass),更改权限为 777。

找到目标程序的 PID:
adb shell pidof 包名
运行安卓端的调试程序:
adb shell
su
cd data/local/tmp
./ass32
会出现下图,则说明在监听端口 23946,服务端成功运行。
IDA Android 32-bit remote debug server(ST) v9.0.30. Hex-Rays (c) 2004-2024
2026-05-03 18:10:51 Listening on 0.0.0.0:23946...
新开一个cmd执行端口转发:
adb forward tcp:23946 tcp:23946
以调试模式运行程序:
adb shell am start -D -n 包名/程序入口名
例:
adb shell am start -D -n com.droider.debugjniso/com.droider.debugjniso.DebugjnisoActivity
出现:

IDA中这样配置即可(只需要手填hostname):

然后attach到调试进程。
这个时候IDA会跳转到一个地方,但此时只是跳转到了类似头文件的东西,还没有正式开始调试。

接着执行以下命令:
直接用命令查看 PID 和 JDWP:
adb shell pidof com.crackme.bbbbutton
adb jdwp
建立调试端口:
adb forward tcp:8615 jdwp:<PID>
连接:
jdb -connect "com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8615"
再点一下IDA上面的绿色开始调试的按钮即可开始调试。

浙公网安备 33010602011771号