リンクelf-formatのElf32_Ehdr構造(page9)に従って、elfヘッダーサイズは52バイトに固定してください。しかし、フィールドe_ehsizeもあり、52バイトを超えることができます。最初のセクションのヘッダが始まるまでの余分なバイトはどこで定義されていますか?それが言うようにELFヘッダーサイズ52バイト以上
答えて
ELFヘッダーは、通常32ビットマシンでは52バイト、64ビットマシンでは64バイトであることに注意してください。 古い仕様[1]には、その説明に64ビットヘッダーが含まれていません。これはあなたが使っている仕様かもしれません。 [1] http://www.skyfree.org/linux/references/ELF_Format.pdf
文書[2]にアクセスする64ビットELFヘッダーを確認できます。 [2] ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/elf64-2.4.pdf
32と64ビットのELFヘッダの差が進んでいる:
はtypedef struct{
........ // struct Elf32_Ehdr
Elf64_Addr e_entry; //[8 bytes] Elf32_Addr [4 bytes]
Elf64_Off e_phoff; //[8 bytes] Elf32_Off [4 bytes]
Elf64_Off e_shoff; //[8 bytes] Elf32_Off [4 bytes]
.......
} Elf64_Ehdr;
サイズ差ことである(4 * 3)= 32から12バイトの64ビットELFヘッダー。また、ヘッダーには、仕様によって示されるように最後に余分なビットが含まれることに注意してください。
ELFバイナリを解析するときは、ファイルが32ビットまたは64ビットのELFであるかどうかを確認するために、最初の16バイトを最初に読み取るようにしてください。
は、また、9ページ:ELFヘッダは、実際のサイズが含まれているため
いくつかのオブジェクトファイル制御構造は、成長することができます。 オブジェクトファイルの形式がに変更された場合、プログラムは予想よりも大きくても小さくても構いません。したがって、プログラムは「余分な」情報を無視することがあります。 「欠落している」情報の扱いはコンテキストに依存し、が定義されている場合はと指定されます。
(強調が加えられる)。現在、余分なバイトのセマンティクスは定義されていません。彼らは拡張を構成するだろう。さらに、テキストは、Elf32_Ehdr
セクションが52バイトより長いファイルを見つけた場合、余分なバイトを無視しても問題ないことを意味しています。
- 1. バイト以上のNASMループ
- 2. MPEG4 AVCヘッダーサイズ?
- 3. 最大MP4 H264ヘッダーサイズ
- 4. ジャージーテストセット最大httpヘッダーサイズ
- 5. Windows上でELFを逆コンパイルする
- 6. 1バイト以上使用することができます
- 7. Android BLEで23バイト以上を読み取る方法BLE
- 8. GZipラウンドトリップで1バイト以上の切り捨て
- 9. イオン交換のbluetoothleプラグインで20バイト以上を送信
- 10. 追加要求された以上の取得13バイト
- 11. 大きなファイルを5Mバイト以上アップロードする方法5
- 12. COBOLとHLASM(アセンブリ)間のリンケージ(32Kバイト以上)
- 13. VBA - ランタイムエラー52
- 14. Firefoxの52:
- 15. C++で8バイト以上または20桁以上の大整数データを扱う方法
- 16. 52以上の指数を持つすべての整数であっても64ビット浮動小数点
- 17. Firefox 52 Insecure Connection Fix
- 18. LinuxはELF以外のバイナリフォーマットをサポートしていますか?
- 19. KSOAP2でtransport.dumpのサイズを256バイトから512バイト以上に増やす方法はありますか?
- 20. 配列内の2バイト以上の項目を1バイト要素にマージする方法
- 21. ヘッダーサイズを大きくするpdfMake
- 22. イメージ全体のヘッダーサイズを取らない
- 23. WDKのC++での配列のヘッダーサイズ
- 24. bmpファイルのヘッダーサイズを読み取る
- 25. 2バイトの最上位ビット
- 26. 受信ノードに20バイト以上の1D配列を転送する
- 27. JavaでTelnetから1200バイト以上のリクエストを送信できません{クローズ}
- 28. Linux ELFファイルセクション名
- 29. Linux elf .text direction
- 30. Benign ELFデータセット
もし私が気付かなかったときには52バイトが固定されています...セクション名などの余分なバイトに文字列があります。どこかで定義されているかわかりません – RedArrow
あなたは正しいです!私の試行を通して、私はリンカまたはコンパイラの設定から来るはずの固定バイトを置く52バイトを覚えています – RedArrow