Android SO动态调试之IDA

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android SO动态调试之IDA相关的知识,希望对你有一定的参考价值。

粘贴一些命令,懒人复制粘贴用 ;(

1、上传并启动android_server(IDA的dbgsrv目录)

2、设置端口转发:adb forward tcp:23946 tcp:23946

3、调试模式启动应用:adb shell am start -D -n 包名/类名

类名可以在AndroidManifest.xml中查看,搜索LAUNCHER对应的android:name

4、IDA attach到目标进程,转换端口到指定调试程序:adb forward tcp:9999 jdwp:进程id(id在attach时记下或通过ps |grep查看)

5、jdb附加到调试程序:jdb -connect com.sun.jdi.SocketAttach:port=9999,hostname=localhost

6、在目标so的目标函数下断点,F9执行到断点,开始调试之

_Z21dvmDexFileOpenPartialPKviPP6DvmDex下断dump出dex文件的脚本:

auto fp, dex_addr, end_addr;

fp = fopen("e:\\dump.dex", "wb");
end_addr = r0 + r1;
for(dex_addr = r0; dex_addr < end_addr; dex_addr++)
    fputc(Byte(dex_addr), fp)

以上是关于Android SO动态调试之IDA的主要内容,如果未能解决你的问题,请参考以下文章

020 Android之so文件动态调试

IDA 对 so 的动态调试

ida动态调试无法转化代码

ida动态调试so,在init_array和JNI_ONLOAD处下断点

通过模拟器和ida搭建Android动态调试环境的问题

安卓逆向 -- IDA动态调试