実行可能ファイルの完全な逆アセンブリ(アセンブラへの入力として機能できます)を取得することは可能ですか?
otool -tV a.out
を使用すると、テキストセクションのみが表示されます。データのような他のセクションは表示されません。
gdb
を使用する場合、逆アセンブルコマンドには開始アドレスと終了アドレスが必要です。ただし、バイナリの開始アドレスと終了アドレスを見つける方法がわかりません(たとえばa.out)。
実行可能ファイルを逆アセンブルし、アセンブリコードをいじってから、再アセンブルしようとしています。それは可能ですか?
バイナリ内のすべてのセクションの名前を見つけることができれば、それも役に立ちます。
このコマンドを使用してみてください。いつか使用したことを覚えています。
otool -tvV a.out
Macでは、gobjdumpを含むbinutilsを(おそらく自作で)インストールできます。インストールすると、任意のバイナリプログラムを逆アセンブルできます。オープンで無料です。
Hopper Disassembler を使用できます
見積もり:
Hopperは、Mac用のリバースエンジニアリングツールであり、32/64ビットのIntel Mac実行可能ファイルを逆アセンブル、逆コンパイル、およびデバッグできます。
価格は59ドルですが、デモをダウンロードして、最初に仕事が完了するかどうかを確認できます。
[〜#〜]編集[〜#〜]
マニュアル によると、これはotool
でも達成できるようです。
.B -d(_\^ _ DATA、_\^ _ data)セクションの内容を表示します。
また、 この短いブログ投稿 を参照してください。これは、前述のotool
の使用法と、@ Sjlverで言及されているobjdump
の使用方法について説明しています。