問題タブ [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.
objdump - kcachegrindで別のobjdumpを使用する
Kcachegrindは、デフォルトでデフォルトの1つのobjdumpを使用します(ELFからasmコードを取得するため)。
Kcachegrindに別のobjdumpを使用させることは可能/home/os_gx/local/bin/arm-linux/objdump
ですか?
objdump - 一部の実行可能ファイルにメイン機能がないのはなぜですか?
/bin/ls などの実行可能ファイルを "objdump -d" したところ、アセンブリ コードに main 関数がないことがわかりました。なんで?
c - バッファ オーバーフロー攻撃
非常に単純なバッファ オーバーフロー攻撃を実行しようとしています。私はこれにほとんど初心者です。したがって、この質問がばかげている場合は、すみません:-)
コード:
objdump を使用して関数アドレスを取得すると、次のようになります。
今、私が欲しいのは、そこでバッファをオーバーフローさせ、戻りアドレスをconfused()のアドレスに上書きすることにより、victim_func()から関数「confused()」にジャンプすることです。そして、混乱した()からメインのprintf()ステートメントに戻り、正常に終了したいと思います。したがって、次の入力を提供します
ただし、プログラムはその printf ステートメントから "Done" を出力しますが、victim_func() に戻って "Enter n:" を出力します。
私は何を間違っていますか?どんな助けでも大歓迎です!
PS: 質問が正しいかどうかわかりません。さらに情報が必要な場合はお知らせください。
gcc - C++ で書かれた共有オブジェクトに対する GCC の適切な可視性
C++ で書かれた巨大なプロジェクトがあります。それはすべて複数の静的ライブラリに分割され、それらは最終的に 1 つの最終的な共有ライブラリにリンクされ、いくつかの単純な関数のみをエクスポートする必要があります。
その最終的な.soのobjdumpを実行すると、すべての内部名などが表示されます。長いクラス名と名前空間を使用するため、これらの文字列が非常に長くなり、結果として最終的なバイナリが大きくなります。
それで、私の質問は、これらすべての内部関数が最終的なバイナリに表示されないようにするために、GCC で適切に行うにはどうすればよいですか?
これらすべての GCC 固有の可視性修飾子については認識しており、-fvisibility=hidden -fvisibility-inlines-hidden を使用します。C++ の例外と rtti を無効にします (-fno-exceptions -fno-rtti) が、GCC に最終的な .so を生成させることができません。これには、そこにあるはずのない名前空間とクラスの名前が含まれていません。全て!
-Wl,--version-script= を使用してどの関数を表示するかを制御しようとしましたが、最終的に削除された共有オブジェクトに多くの内部名が表示されます。SOで複数の同様のエントリを読みましたが、仕事をするものは何も見当たりません。注: 複数のプラットフォーム (Linux、Windows、iPhone など) 用にコンパイルしますが、VS のウィンドウでのみ問題はありません。
ありがとう
x86 - `objdump`からの分解ダンプを理解するための良いリソースは何ですか?
この形式での分解の理解をどこから始めればよいのか知りたいです。私はWindowsの時代からOllyDbgに精通していますが、これは少し異なり、セマンティクスを下げたいと考えています。私が話していることの一部の例objdump -d loops
:
ありがとうございました
ios - binutils で objdump を実行するとファイル形式が認識されない
iOS プロジェクトには .a lib があります。その中のメソッド名を見たいので、Macにbinutilsをインストールしました。しかし、objdump [-h] xxx.a を実行すると。それは言います:
「ファイル形式が認識されません」。
では、objdump がサポートする形式は何ですか? また、objdump を使用せずにその .a lib のメソッドを確認するにはどうすればよいですか?
c - C バイナリで _fini を抽出する
基本的に、バイナリ内で _fini アドレスを抽出する方法を探しています。私が考えることができる単純な方法は、objdump を使用して _fini を解析することです。これを行うためのより良い方法はありますか (たとえば、objdump を使用しないなど)。
ありがとうございました!
assembly - 逆アセンブラー (objdump など) の出力をアセンブルしようとしています。
組み立てと分解は逆ではないと言われました。どうやら、プログラムを逆アセンブルし、その出力をアセンブラーに直接入れて、正しく実行されることを期待することはできません。情報が失われるからです。
私の質問は、なぜ情報が失われるのですか? また、どのような情報が失われますか?
objdump - objdump、オフセットなしで表示
実行可能ファイルをダンプするときは、コードセグメントを標準出力にのみ出力し、オフセットやバイナリ形式のコードは出力しないようにします。私はそれを達成することはできません
方法はありますか?