問題タブ [objdump]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
assembly - 2つのバイナリファイルを比較する
2つのバイナリファイルを比較するにはどうすればよいですか?
プログラムには、バージョン1とバージョン2の2つのバージョンがあります。2つのバージョン間でいくつかの変更を加えましたが、残念ながら定期的にバックアップされていないため、バージョン2のソースは入手できます。 、私はバージョン1のバイナリしか持っていません。正確には、2つのバージョン間で何を変更したかを知る必要があります。2つのバージョンのobjdumpを作成し、diffを使用して変更を見つけようとしましたが、オフセットが異なるため機能しません。そのため、diffはほぼすべての行が変更されたと見なします。
たとえば、1行がbgez v0,4074d0<daemonize+0xd4>
バージョン1とbgez v0,4073d4<daemonize+0xd4>
バージョン2にある場合があります。これらは、ダンプファイルから直接コピーされます。2行が同じことをしていることがわかりますが、diffでは区別できません。ファイルが大きすぎて、すべての行を手動で調べることができません。オフセットの違いを無視して、機能の変更を検出するにはどうすればよいですか?
c - 共有オブジェクトのどの関数がプログラムまたは他のライブラリで使用されているかを調べるにはどうすればよいですか?
共有オブジェクトのどの関数がプログラムまたは他のライブラリで使用されているかを調べるにはどうすればよいですか? この特定のケースでは、/lib/libgcc1_s.so.1 内のどの関数が他の動的ライブラリによって使用されているかを確認したいと思います。それらは動的にリンクされているため、objdump -d は関数呼び出しアドレスを解決しません。プログラムをデバッガーで実行したり、静的に再リンクしたりする方法はありますか? ありがとう、
ルカ
編集:
nm と readelf は役に立ちません。共有オブジェクトに存在するシンボルを確認する必要はありませんが、実際にリンクしている他のオブジェクトでどのシンボルが使用されているかを確認する必要はありません。
objdump - objdump-ヘッドELF-フラグの意味?
$ objdump -f ./a.out
$ objdump -f function.o
フラグの意味は何ですか(フラグ0x00000011:またはフラグ0x00000112 :)?ELFヘッダーファイルのNothinにはこのフラグがあります。e_flagには0が含まれています。
誰かが彼の意味について考えを持っていますか?
ありがとう
c++ - objdump の結果をファイルに送信するにはどうすればよいですか?
Windows XP で実行可能ファイルに対して objdump を実行し、詳細を観察したいと考えています。ただし、結果をテキストファイルに出力するオプションが見つかりません-コンソールの出力表示が途切れているためです(オプション-oまたは/outを使用してooutfilenameを指定しようとしましたが、存在しないようです)
windows - 最適化された Windows バイナリのクラッシュ ダンプから関数トレースをおおよそ知るにはどうすればよいですか?
Windows X86-64 バイナリ (XXX) から生成されたクラッシュ ダンプ ファイルがあります。
私は実行可能ファイルを持っています。objdump または dumpbin を使用してアドレスを関数名にマップすることは可能ですか?
ありがとう、ナガ
gdb - 特定の関数が定義されているライブラリを知る方法は?
...
だから私freeaddrinfo
は動的にリンクされた関数であることを知っていますが、どのように.so
定義されているかを知るにはどうすればよいですか?
elf - 関数 xyz を含む .o ファイルのセグメントは?
「abc.o のどのセグメントに関数 foo() が含まれていますか?」という質問を考えてみましょう。
これは同じ質問ですか?
「この関数 foo() を含む ELF のセクションは?」
申し訳ありません..私はこれが非常にばかげていることを知っています. ここで少し混乱しています。
c# - ac#プログラムの逆アセンブルの追跡
逆アセンブルを表示しないvsiaulc#2008 Express Editionを使用しているため、objdumpを使用してac#プログラムの逆アセンブルを理解しようとしています。
次のコマンドを実行して出力を取得しています。
逆アセンブリ出力で関数コードを識別できないため、値が0x1234のダミー変数を入力しました。
しかし、生成されたファイルのどこにも1234の値を見つけることができません!objdumpに-tや-Tなどの他のオプションを試しましたが、シンボルテーブルが見つからないと表示されます。誰かがobjdumpを使用して関数の逆アセンブリを表示する方法、または他の無料のツールがあるかどうかを教えてもらえますか?
編集:私はMSILの分解を知っています、私は同等のアセンブリ言語を知りたいと思いました。
c - gcc 出力マシン コードに nop 命令があるのはなぜですか
objdump -d を実行するたびに、nop 命令 (何もしない命令) のバッチを含む asm コードが常に表示されます。
たとえば、次の同じプログラムを使用します。
たとえば、objdump には、エントリ ポイントの最後に 2 つの nop があります。
これは多くの例の 1 つにすぎませんが、その考えは理解できます。C コードがこのようにコンパイルされるのはなぜですか? 前もって感謝します。
linker - elfファイルのセクションの仮想アドレスと物理アドレス
objdumpはelfセクションの物理アドレス(LMA)をどのように計算しますか?私の知る限り、elfセクションヘッダーにはセクション[1]の仮想アドレス(VMA)のみが含まれています。
通常、VMAとLMAは同じです。ただし、初期化されたデータセクション(.data)の場合、VMAは変数のRAMの場所であり、LMAは初期値が配置されているROMの場所です。Crt0は、main()が呼び出される前に初期値をRAMにコピーする役割を果たします。例えば:
-トム