以上是MS-DOS头字段的完整列表,但我不知道哪些是强制性的,哪些是可选的,有人知道吗?
问问题
1165 次
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 回答