Android逆向 ida动态调试问题

Posted

tags:

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

参考技术A 先输入”adb shell”,然后输入”su root”获取root权限。

接着输入” chmod 777 /data/local/tmp/android_server” 给android_server加上相应的权限。

接着输入” /data/local/tmp/android_server”启动android_server。

如下图所示:

输入”adb forward tcp:23946 tcp:23946”进行tcp端口转发

命令,启动所要调试的Activity。

app会弹出”Waitting for debugger”对话框,如下图所示:

点击”Debug options”按钮,在”Suspend on process entry point”, ”Suspend on thread start/exit”, ”Suspend on library load/unload” 等选项的前面打上勾,如下图所示:

点击”ok”后会在以下对话框的hostname中填上”localhost”

在弹出的”Choose process to attach to”窗口中找到”com.example.testjniso”进程,选中该进程,然后点击”ok”按钮。

其中可以看到com.example.testjniso进程的端口为8700。

如下图所示:

在ida弹出的”Add map”窗口中,一律点击”Cancle”按钮。

点击ida中的暂停调试按钮,暂停当前的调试,如下图所示:

右击libTestJniSo.so文件,在弹出的框中点击”Jump to module base”,跳转到libTestJniSo.so文件的起始地址。

按下Alt+T,弹出查找对话框中输入” Java_com_example_testjniso_MainActivity_helloFromJni” 如下图所示:

点击”ok”按钮后,即可跳转到 Java_com_example_testjniso_MainActivity_helloFromJni 函数所在的起始地址。

然后在地址处下断点:

再按F9重新开始调试,点击app中的”点击加载so文件”按钮重新加载libTestJniSo.so,即可看到程序成功地停在了断点处:

到此处就可以正常地调试so文件了。

Linker是什么?
Linker就是/system/lib/linker,它是进程启动时第一个加载的模块,它负责管理elf可执行文件以及各个so文件的加载执行,还参与了调试的一些东西。通俗地说,它是一个elf文件的解释器。它可以加载elf可执行文件及so动态库。

在android 5.0下,不能执行android_server是因为android5.0自带的linker不支持加载非pie的elf文件,但如果自己实现一个可以加载pie的linker,不就可以解决这个问题了吗?对的,就是酱紫,补上自己的自定义linker在附件.

https://bbs.pediy.com/thread-206084.htm

Android 逆向IDA 安装 ( 使用 IDA 分析 so 动态库 )





一、IDA 安装



启动 IDA 安装程序 , 开始安装 IDA ;

同意用户协议 ;

输入密码 ;

选择安装位置 ;

创建桌面图标 ;

开始安装 ;

等待安装完成 ;

安装完毕 ;





二、使用 IDA 分析 so 动态库



首次进入 , 弹出如下对话框 ;

同意用户协议 , 之后该界面不再显示 ;

选择 " New " 选项 ;

这里直接将 so 文件拖动到 IDA 中 ;

拖入 so 文件后 , 使用默认选项 , 点击 OK 按钮 , 继续向后执行 ;

弹出的信息对话框中勾选不再显示该信息 , 点击 OK 按钮 ;

打开后的样式 :

左侧 Function name 显示函数名称 ,

IDA-View-A 是 so 库对应的汇编代码 ;

IDA-View-1 是 so 库对应的二进制代码 ;

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

Android逆向笔记-IDA Pro动态调试Android程序(真机)

Android 逆向IDA 工具使用 ( 交叉引用数量设置 | 调试设置 )

Android 逆向IDA 工具使用 ( 交叉引用数量设置 | 调试设置 )

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

Android 逆向初探

安卓逆向 -- 实战某峰窝APP(动态分析)