objdump -d
を使用すると、アセンブリ(Intel構文またはAT&T構文)、バイナリオペコードエンコーディング、およびアドレス番号が出力されることがわかりました。私の場合、逆アセンブラはAT&Tアセンブリのみを出力したいと思います。これは、オブジェクトファイルからアセンブリファイルにアセンブリをコピーするために最初の18〜24文字(たとえば、計算されていない)を削除するのが面倒です。
答え1
誰でも助けることができますか?
はい!man objdump
できる。 AT&T( /AT&T enter)を見つけよう!次に、--no-addresses
しなければならない働く
-M
このオプションを使用して、お好みのアセンブラ構文モードを渡すことができます-M att
。
もっと汎用性のある逆アセンブラが必要な場合は、試してみてくださいradare2
(慣れるのに30分かかります)。
答え2
--no-addresses
に記載されている兆候マーカス・ミュラーの答えBinutils 2.35で導入されました。以前のバージョンobjdump
(Ubuntu 20.04以下、RHEL 8以下)の場合は、以前の逆アセンブリ出力(固定幅アドレスとエンコードガイドラインなし)に切り替えてから出力を切り取ると、同じ結果が得られます。 64ビットプラットフォーム:
objdump -d --prefix-addresses ... | cut -c20-