用于ARM(共享对象)的ELF
二进制文件
如果我选择用于ARM(共享对象)的ELF,然后它会正确地反编译并检测到大多数标准功能,例如tan / sin / cos等。但是,当我尝试运行远程android调试器时,我收到了警报消息。是一个动态库,它不能单独运行。请指定主机应用程序。
调试器插件无法加载该文件。请验证参数是否有效。此外,远程android调试器选项未在调试器列表中列出。
我可以直接在Android ARM仿真器上执行二进制文件。如何使用IDA pro调试用于ARM二进制可执行文件的ELF?
编辑:我已经尝试过在AVD和物理设备上运行的
android_server
。当我尝试连接[ELF for ARM(共享对象)]时,可以在android_server
中看到以下输出:是否将所有ARM二进制可执行文件都检测为共享对象?还是我的可执行文件被误识别为.so
文件?#1 楼
您需要创建一个Android虚拟设备,将您的ELF程序和<IDA directory>\dbgsrv\android_server
复制到该虚拟设备,然后在该虚拟设备上运行android_server
。然后,您可以使用IDA调试ELF文件。这是两页,其中包含有关如何执行此操作的详细说明:Android二进制文件调试指南
使用IDA调试Android库
评论
我已经使用AVD和物理设备进行了尝试。当我运行远程android调试器时,我可以在android_server中看到以下输出================================= ======================= [7]接受来自127.0.0.1的连接... [7]终止来自127.0.0.1的连接...
–乔伊斯·巴布(Joyce Babu)
2015年4月25日在21:19
#2 楼
正如我在对您的问题的评论中所说的那样,文件是作为共享对象加载的,那么它很可能是一个“ .so”文件,实际上是一个共享库。您确定此应用程序可以独立于命令行(adb)运行吗?如果它是共享库,则需要附加到可以加载并调用您所要功能的进程想逐步进入IDA。您可以使用我在网上创建并发布的“ shim”应用程序来执行此操作;
https://github.com/rednaga/native-shim
其中包括有关如何编译它,将其推入设备并指向IDA Pro。这使您可以将共享库作为参数传递,并允许它通过IDA Pro“运行”。希望这能解决您的问题。
评论
如果文件作为共享对象加载,则它很可能是“ .so”文件,实际上是共享库。您确定此应用程序可以独立于命令行(adb)运行吗?如果它是共享库,则需要附加到一个进程,该进程可以加载并调用要在IDA中逐步执行的功能。