web-dev-qa-db-ja.com

実行可能バイナリの完全な逆アセンブルを取得する

実行可能ファイルの完全な逆アセンブリ(アセンブラへの入力として機能できます)を取得することは可能ですか?

otool -tV a.outを使用すると、テキストセクションのみが表示されます。データのような他のセクションは表示されません。

gdbを使用する場合、逆アセンブルコマンドには開始アドレスと終了アドレスが必要です。ただし、バイナリの開始アドレスと終了アドレスを見つける方法がわかりません(たとえばa.out)。

実行可能ファイルを逆アセンブルし、アセンブリコードをいじってから、再アセンブルしようとしています。それは可能ですか?

バイナリ内のすべてのセクションの名前を見つけることができれば、それも役に立ちます。

17
mynk

このコマンドを使用してみてください。いつか使用したことを覚えています。

otool -tvV a.out
29
Tanuvir

Macでは、gobjdumpを含むbinutilsを(おそらく自作で)インストールできます。インストールすると、任意のバイナリプログラムを逆アセンブルできます。オープンで無料です。

2
Xizeng Mao

Hopper Disassembler を使用できます

見積もり:

Hopperは、Mac用のリバースエンジニアリングツールであり、32/64ビットのIntel Mac実行可能ファイルを逆アセンブル、逆コンパイル、およびデバッグできます。

価格は59ドルですが、デモをダウンロードして、最初に仕事が完了するかどうかを確認できます。

[〜#〜]編集[〜#〜]

マニュアル によると、これはotoolでも達成できるようです。

.B -d(_\^ _ DATA、_\^ _ data)セクションの内容を表示します。

また、 この短いブログ投稿 を参照してください。これは、前述のotoolの使用法と、@ Sjlverで言及されているobjdumpの使用方法について説明しています。

0
Jørgen R