ida动态调试Android so库步骤
作者:smice分类:Android
日期:2022-09-14 16:23:002022-09-14阅读:456

调试前准备:

  1. 被调试App为可调试状态,即mainifest中debuggable为true,或者手机ro.debuggable=true。可通过修改boot或者magisk模块、xposed的XAppDebug等模块实现。
  2. android_server文件位于ida目录的dbgsrv路径下,选择与手机架构一致、且与ida、so都要一致。
  3. 通过adb shell执行su root获取root权限,执行anroid_server,默认端口23946
  4. 执行 adb forward tcp:23946 tcp:23946(端口转发)
  5. 打开待调试的应用程序,就可以调试了
  6. 如果有反调试则还需执行以下步骤:
    1. adb shell am start -D -n 包名/类名(以启动模式启动,是停在加载so文件之前,包名、启动activity在AndroidMainfest文件中可以找到、或者使用libcheker、幸运破解器等查看)
    2. 执行adb shell,然后再执行top|grep 包名 (获取pid)
    3. adb forward tcp:8700 jdwp:获取到的pid
    4. jdb -connect com.sun.jdi.SocketAttach:hostname=localhost,port=8700(jdb附加)打断点做好前提准备后可在目标代码的汇编处下断点,而不是f5后的伪代码处。在load so的时候process type要选对,是arm的就选arm是x86的就选x86


debug option如下设置


process option中hostname填入127.0.0.1,port根据自己设置的填,默认23946


然后在debugger中选择进程就可以愉快的调试了

弹幕评论