1

替代文字

以上是MS-DOS头字段的完整列表,但我不知道哪些是强制性的,哪些是可选的,有人知道吗?

4

3 回答 3

4

如果您尝试创建 PE 映像,e_magic(Magic number) 和elfanew(File address of new exe header) 是您必须填写的唯一必填字段。elfanew应该指向 PEIMAGE_NT_HEADER结构。

于 2011-05-23T04:38:41.937 回答
2

早在 2006 年,有人想创建世界上最小的 PE。为此,他编写了一个小型 PE Fuzzer。使用最小的代码库。

return 42;

他设法获得了以下大小的 PE,您太忙了,无法阅读整个页面,以下是结果摘要:

  • 最小的 PE 文件:97 字节
  • Windows 2000 上最小的 PE 文件:133 字节
  • 通过 WebDAV 下载文件并执行的最小 PE 文件:133 字节

你可以在这里查看他的作品: http ://www.phreedom.org/research/tinype/

他还说明了所需的标头值。这些是:

  • e_magic
  • e_lfanew
  • 机器
  • NumberOfSections
  • SizeOfOptionalHeader
  • 特征

可选标题:

  • 魔法
  • 入口地址
  • 图像库
  • 截面对齐
  • 文件对齐
  • 主要子系统版本
  • 图像大小
  • SizeOfHeaders
  • 子系统
  • SizeOfStackCommit
  • SizeOfHeapReserve
于 2012-12-17T08:54:49.337 回答
0

对于 MS-DOS,所有标题都是强制性的。

对于 Win9x 及以上版本,e_lfanew 必须是图像开头到 IMAGE_NT_HEADERS 开头的偏移量,e_magic 必须是 IMAGE_DOS_SIGNATURE ('MZ')。

于 2012-03-07T20:58:03.793 回答