安卓调试 .so 断到 JNI_OnLoad 或者 .init段
一、设置全局调试状态
android:extractNativeLibs="true"
su getprop ro.debuggable // 查看是否开起了全局调试 su magisk resetprop ro.debuggable 1 stop;start
当然,如果app本身有 debeggable属性的话,可以不用设置
二、启动server,设置端口转发
cd /data/local/tmp ./android_server64 adb forward tcp:23946 tcp:23946 // 再开一个终端,做端口转发
之后下断点
三、调试模式启动目标
adb shell am start -D -n <包名>/.入口 # am命令启动app(如:adb shell am start -D -n com.com.sec2023.rocketmouse.mouse/com.unity3d.player.UnityPlayerActivity
现在让IDA attach上去
四、端口转发,并让程序继续运行
adb forward tcp:8700 jdwp:<pid> jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700
此时我们 ida 直接 F9即可。我们也可以在 IDA->Debugger->Debugger Options 上进行设置,设置在加载 任何一个.so文件的时候断下来