15

objdump のような OSX ユニバーサル x86/x86_64 ファット Mach-O バイナリを逆アセンブルできる Linux プログラムはありますか? GNU binutils の objdump は ELF および Windows PE ファイルをサポートしますが、Mach-O はサポートしません。

4

5 に答える 5

14

私の知る限り、ネイティブのダーウィン バイナリ ツールはcctoolsパッケージの一部です。GNU binutilsと同じコマンド ライン構文や出力はありません。ただし、後の binutils (つまり 2.22) は Mach-O 形式をサポートしています。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 バイナリ) を適切に処理する必要があります。

于 2012-01-03T14:58:18.880 に答える
5

ジェフの反応に関して:

bintuils には、現在の 2.23 リリースでさえ、mach o のリンク サポート (ld/gld) が含まれていません。これは本当に残念ですが、驚くべきことではありません。残念なことに、それは OS を作り、「本当に再発明する必要のないもの」を再発明するときに起こることです。誰もが異なる優先順位を持っています。まだ一部の人からa.out vs elfの終了を聞いていません。

OSX で ELF バイナリを実行してみませんか? https://stackoverflow.com/a/2613170/1867574

于 2012-11-30T21:25:42.490 に答える
2

Hopperを使用して、Linux で Mach-O バイナリを逆アセンブルできます。objdump とは異なり、非常に優れたグラフィカル ユーザー インターフェイスを備えています。

于 2013-03-21T21:53:33.187 に答える
2

が必要だと思いますotool。に含まれていmac osx command toolsます。たとえば、 を逆アセンブルする場合は、コマンド ラインにa.out入力するだけです。otool -tv a.out

于 2014-08-02T16:31:08.357 に答える
-1

Mach-O バイナリをリバース エンジニアリングするための有名なツールは、otool、strings、nm、otx などです。これは MAC OSX で確実に機能します。Linux プラットフォームでも機能すると思います。

于 2012-01-03T12:39:59.860 に答える