Android逆向 ida动态调试问题

Android逆向 ida动态调试问题,第1张

先输入”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会d出”Waitting for debugger”对话框,如下图所示:

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

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

在d出的”Choose process to attach to”窗口中找到”comexampletestjniso”进程,选中该进程,然后点击”ok”按钮。

其中可以看到comexampletestjniso进程的端口为8700。

如下图所示:

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

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

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

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

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

然后在地址处下断点:

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

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

Linker是什么?

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

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

>

这里使用的是zyantific大神制作的IDA Pro主题插件。这款插件使用Qt stylesheets的方式改变IDA的外观样式。

这里用的配色方案是IDA Nightfall

以上就是关于Android逆向 ida动态调试问题全部的内容,包括:Android逆向 ida动态调试问题、ida动态调试返回值、IDA Pro 7.0修改主题和配色等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10109110.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存