objdump のような OSX ユニバーサル x86/x86_64 ファット Mach-O バイナリを逆アセンブルできる Linux プログラムはありますか? GNU binutils の objdump は ELF および Windows PE ファイルをサポートしますが、Mach-O はサポートしません。
5 に答える
私の知る限り、ネイティブのダーウィン バイナリ ツールは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 バイナリ) を適切に処理する必要があります。
ジェフの反応に関して:
bintuils には、現在の 2.23 リリースでさえ、mach o のリンク サポート (ld/gld) が含まれていません。これは本当に残念ですが、驚くべきことではありません。残念なことに、それは OS を作り、「本当に再発明する必要のないもの」を再発明するときに起こることです。誰もが異なる優先順位を持っています。まだ一部の人からa.out vs elfの終了を聞いていません。
OSX で ELF バイナリを実行してみませんか? https://stackoverflow.com/a/2613170/1867574
Hopperを使用して、Linux で Mach-O バイナリを逆アセンブルできます。objdump とは異なり、非常に優れたグラフィカル ユーザー インターフェイスを備えています。
が必要だと思いますotool
。に含まれていmac osx command tools
ます。たとえば、 を逆アセンブルする場合は、コマンド ラインにa.out
入力するだけです。otool -tv a.out
Mach-O バイナリをリバース エンジニアリングするための有名なツールは、otool、strings、nm、otx などです。これは MAC OSX で確実に機能します。Linux プラットフォームでも機能すると思います。