Linux Mach-O反汇编程序

时间:2012-01-03 12:32:07

标签: linux disassembly mach-o objdump

是否有任何Linux程序可以反汇编OSX通用x86 / x86_64脂肪Mach-O二进制文件,如objdump? GNU binutils的objdump支持ELF和Windows PE文件,但不支持Mach-O。

5 个答案:

答案 0 :(得分:11)

AFAIK,原生Darwin二进制工具是cctools包的一部分。它们与GNU binutils没有相同的命令行语法或输出。后来的binutils(即2.22)支持Mach-O格式。如上所述here,您可以使用工具名称的“g”前缀获得这些预建。或者,您可以编译binutils,例如:

> ./configure --prefix=$CROSSTOOLDIR --target=x86_64-apple-darwin \
--enable-64-bit-bfd --disable-nls --disable-werror

安装将生成bin/目录,其中实用程序以x86_64-apple-darwin为前缀。它应该处理i386 Mach-O格式(和FAT二进制文件)。

答案 1 :(得分:5)

关于杰夫的回应:

bintuils不包括连接支持(ld / gld),甚至在目前的2.23版本中也没有,这实在令人失望但并不令人惊讶。不幸的是,当你制作一个操作系统,并重新发明“真正不需要重新发明”的东西时会发生什么。每个人都有不同的重点。有些人我还没有听说a.out与精灵的结束。

小心尝试在OSX上运行ELF二进制文件? https://stackoverflow.com/a/2613170/1867574

答案 2 :(得分:2)

您可以使用Hopper在Linux上反汇编Mach-O二进制文件。与objdump不同,它有一个非常好的图形用户界面。

答案 3 :(得分:2)

我认为你需要otool。它包含在mac osx command tools中。例如,如果要反汇编a.out,您只需在命令行中键入otool -tv a.out即可。

答案 4 :(得分:-1)

很少有用于逆向工程Mach-O二进制文件的着名工具是 otool ,字符串,nm,otx等。这绝对适用于MAC OSX,我认为它也适用于Linux平台。< / p>