2010-09-22 26 views
1

alt text哪個MS-DOS頭域是強制性的/可選的?

以上是MS-DOS頭部字段的完整列表,但我不知道哪些是必需的,哪些是可選的,有人知道嗎?

+0

我可以建議不是 '懷孕的' 這和使用MS-DOS? (哦,是的,也接受一些答案) – KevinDTimm 2010-09-22 16:59:04

+0

你知道DOS存根今天存在於每一個PE中,不要U? – COMer 2010-09-25 08:22:16

回答

4

如果你想創建PE映像,e_magic(幻數)和elfanew(新的EXE頭的文件地址),你必須填寫的唯一必填字段。elfanew應指向PE IMAGE_NT_HEADER結構。

0

對於MS-DOS,所有標頭都是強制性的。

對於Win9x及以上版本,e_lfanew必須是從圖像開始到IMAGE_NT_HEADERS開始的偏移量,而e_magic必須是IMAGE_DOS_SIGNATURE('MZ')。

2

早在2006年,有人想創造世界上最小的PE。爲此,他寫了一個小型PE Fuzzer。最小的代碼庫是可能的。

return 42; 

他設法得到PE的 你都忙不過來讀取整個頁面的以下尺寸,這裏是結果的摘要:

  • 儘可能小的PE文件:97字節
  • Windows 2000上最小的PE文件:133字節
  • 最小的PE文件,通過WebDAV下載文件並執行它:133字節

你可以在這裏查看他的工作: http://www.phreedom.org/research/tinype/

他還說所需的標頭值。它們是:

  • e_magic
  • e_lfanew
  • NumberOfSections
  • SizeOfOptionalHeader
  • 特點

的OptionalHeader:

  • 魔術
  • AddressOfEntryPoint
  • 基址
  • SectionAlignment
  • FileAlignment
  • MajorSubsystemVersion
  • SizeOfImage
  • SizeOfHeaders
  • 子系統
  • SizeOfStackCommit
  • SizeOfHeapReserve