完全反汇编可执行二进制文件

myn*_*ynk 17 macos gdb otool disassembly

是否可以获得可执行文件的完整反汇编(可以作为汇编程序的输入)?

当我使用时,otool -tV a.out我只看到文本部分.数据等其他部分不可见.

当我使用时gdb,disassemble命令需要一个开始和结束地址.但是我不知道如何找出二进制文件的开始和结束地址(比如a.out).

我正在尝试反汇编可执行文件,修改汇编代码然后重新组装它.那可能吗?

如果能够找到二进制文件中所有部分的名称,它也会有所帮助.

Tan*_*vir 27

尝试使用此命令,我记得有时候使用它:

otool -tvV a.out
Run Code Online (Sandbox Code Playgroud)

  • 过去,该命令以及`otool -IvV a.out`(显示间接符号表)对我都有很大帮助。此外,还有_-d_开关以获取有关_data_部分的信息。更多信息中:`man otool` (2认同)

Jør*_*n R 0

您可以使用Hopper 反汇编器

引用:

Hopper 是 Mac 的逆向工程工具,可让您反汇编、反编译和调试 32/64 位 Intel Mac 可执行文件。

它的售价为 59 美元,但你可以下载一个演示来检查它是否能首先完成工作。

编辑

otool根据手册,您似乎也可以实现这一目标。

.B -d 显示(_^_DATA,_^_data) 部分的内容。

另请参阅这篇简短的博客文章(存档链接,原文已消失),其中描述了提到的 的使用otool,以及如何使用objdump@Sjlver 提到的。