美文网首页
Android逆向 ida动态调试问题

Android逆向 ida动态调试问题

作者: LiuJP | 来源:发表于2020-05-10 17:33 被阅读0次

(1)在IDA的安装路径中找到android_server文件。

image

(2)将android_server拷贝到手机的/data/local/tmp目录下面。

image

(3) 将手机插上电脑,打开命令提示符,

先输入”adb shell”,然后输入”su root”获取root权限。

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

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

如下图所示:

image

(4)重新打开一个命令提示符,

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

image

(5)adb root模式下执行” am start -D -n com.example.testjniso/com.example.testjniso.MainActivity”

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

image

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

image

(6)启动ida pro,点击”Debugger - > Attach -> Remote ArmLinux/Androiddebugger”,会看到以下对话框:

image

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

image

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

image

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

image

(7)打开eclipse ddms在Devices窗口中可以看到以下内容:

image

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

(8)打开命令提示符,输入以下命令:jdb -connect com.sun.jdi.SocketAttach:port=8700,hostname=localhost

如下图所示:

image

(9)点击ida中的继续执行按钮,下图中的绿色三角形按钮(或者按F9)。

image

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

image

(10)点击app中的”点击加载so文件”按钮,确保so文件已经加载到了手机内存中。点击ida中的”Debugger -> Debugger windows -> Module list ”。在”Modules”窗口中找到libTestJni.so

image

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

image

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

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

image

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

然后在地址处下断点:

image

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

image

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

作者:会飞的大象_
链接:https://www.jianshu.com/p/d2d28920940c
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

在android 5.0下,不能执行android_server

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动态调试问题

    (1)在IDA的安装路径中找到android_server文件。 (2)将android_server拷贝到手机的...

  • Android逆向之旅---动态方式破解apk进阶篇(IDA调试

    声明:本文转自Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码),此文干货很多。 一、前言...

  • IDEA 动态调试Smali代码

    逆向方式有多种:静态、动态, 工具也很多:JEB、IDA、IDEA/AndroidStudio,调试内容:Smal...

  • Smali动态调试之Android Studio

    动态调试Smali有多种方式,可以用IDA Pro,Eclipse或者Android Studio等,IDA Pr...

  • Android逆向 之 IDA动态调试so(二)

    概述 上一章进行了so的静态分析,很多时候由于加密逻辑非常复杂我们要依靠动态调试进行逻辑的判断,得到更有用的信息。...

  • Android Studio动态调试apk

    动态调试是Android逆向不可或缺的技能之一,本文简单介绍一下利用Android Studio动态调试apk的流...

  • 逆向

    逆向过程: 第一步 静态分析 Hooper 或者 IDA 第二步 动态调试 LLDB 或者 cycript LLD...

  • so逆向

    动态调试:安装ida,ida安装F5调试工具,安装Eclipse,Eclipse安装DDMS插件相关软件:http...

  • ida动态调试

    首先adb连接逍遥模拟器 127.0.0.1:21503 然后我们需要从IDA中向模拟器中传入android_se...

  • 逆向篇二

    1. 静态分析 1.1 Hopper 1.2 IDA 2. 动态调试 2.1 lldb调试

网友评论

      本文标题:Android逆向 ida动态调试问题

      本文链接:https://www.haomeiwen.com/subject/afgjnhtx.html