安卓调试 .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文件的时候断下来

 

posted @ 2024-12-09 21:14  TLSN  阅读(101)  评论(0)    收藏  举报