どのように考察する上で有用と思われる視点の内容データセクションのELFファイルをLinux?
-
18-09-2019 - |
質問
まとめ 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 に依存せずにこれを行うには。