どのように考察する上で有用と思われる視点の内容データセクションのELFファイルをLinux?

StackOverflow https://stackoverflow.com/questions/1685483

質問

まとめ objdump 見て組み立てコードLinuxではELFバイナリ.

に問題がある間接ジャンプを通じてジャンプテーブルに格納される rodata (読み取りデータをするための手順ではありません。

の取得方法 objdump その他のツールを見せてくれる、このデータの内容のでしょうか。

私はプログラムを実行すると、検討に関連するアドレスにデバッガがいいので仕方な双方向.

最適な答えを識別するツールな表示の内容が話制御、表示フォーマット、そして od います。

役に立ちましたか?

解決

objdump -s -j .rodata exefile

のようなrodataセクションの内容のサイド・バイ・サイドの六角/印刷可能なASCIIダンプを与えます

Contents of section .rodata:
 0000 67452301 efcdab89 67452301 efcdab89  gE#.....gE#.....
 0010 64636261 68676665 64636261 68676665  dcbahgfedcbahgfe

の書式設定を制御するためにそこに何がありますようにそれは見えませんが、それはスタートです。あなたはいつもの六角をundumpし、ODためにそれを養うことができ、私は考えます:)

他のヒント

readelf -x .rodata hello_world.o

受けとる:

Hex dump of section '.rodata':
  0x00000000 48656c6c 6f20776f 726c6421 0a       Hello world!.

す。 readelf 可能な場合で objdump 単純な一部のように .symtab: なぜobjdumpません。bss,.shstratab,.symtabます。strtab部?

また抽出物の原バイトの技術をお話ししたように、これまで: い出の内容のELF部 として によるysdx.

次のコマンドを使用して、RAW (16 進ダンプではない) ELF セクションを取得できます。

# To a file:
objcopy file /dev/null --dump-section .text=text.data
# To stdout:
objcopy file /dev/null --dump-section .text=/dev/stdout | cat

ここで私が使っているのは | cat 標準出力を強制的にパイプにするためです。 /dev/stdout stdout がファイルの場合、予期せず動作する可能性があります。 .text=- 標準出力には送信されませんが、 - ファイル。

しかし objcopy と objdump にはいくつかの欠陥があります (これらは、さまざまな実行可能形式を抽象化する BFD に基づいているため)。

アップデート: 私は、 道具 BFD に依存せずにこれを行うには。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top