使用IDA调试apk的so的步骤

参考:
https://github.com/zhengmin1989/TheSevenWeapons/blob/master/KongQueLing/debugJNIOnload.avi

1

$SDK_HOME/tools/ddms或者$SDK_HOME/tools/monitor

2

adb push android_server64 /data/local/tmp/a_s64 #避免被反调试检测

3

adb shell
$ su
# busybox chmod 777  /data/local/tmp/a_s64(使该文件可执行)
# /data/local/tmp/a_s64(执行,默认监听在23946端口,可通过-pxxx来修改端口,可避免被反调试检测)

4

adb forward tcp:23946(远程android端) tcp:23946(本地) 

将远程的android的端口(即android_server所监听的端口)转发到本地,供后续IDA attach到该端口。

5

adb shell am(Activity Manager) start -D(调试选项) -n(调试的Activity的名字) package_name/activity_name

6

ida attach(设置好debugger选项和process选项,注意选上suspend on library load/unload),最后attach to process

7

jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700(应该是ddms/monitor占用的端口) 

8

点击IDA左上角的绿色按钮,开始调试。
点击『取消』,
使用IDA调试apk的so的步骤_第1张图片
然后在IDA右下角的module这一块找到要调试的.so文件,双击,
使用IDA调试apk的so的步骤_第2张图片
然后找到JNI_Onload()然后点击add breakpoint添加断点。再点击绿色按钮运行,就运行到了这里
使用IDA调试apk的so的步骤_第3张图片

9

按F5反汇编,然后开始调试
使用IDA调试apk的so的步骤_第4张图片

你可能感兴趣的:(Android逆向)