目录 Table of Contents
2 文件头
MS-DOS 头
每一个 PE 文件是以一个 DOS 程序开始的, 有了它, 一旦程序在 DOS 下运行, DOS 才能识别出这是有效的执行体.
PE 文件的第一个字节起始于一个传统的 MS-DOS 头部, 被称作 IMAGE_DOS_HEADER. 这是一个结构体.
IMAGE_DOS_HEARER 结构
成员 e_magic 就是 Magic DOS signature MZ (4Dh 5Ah), 它是 DOS 可执行文件标记.
成员 e_lfanew 一个 32 位的指针, 指向 PE 文件头
其它成员可以自行查阅文档
PE 文件头
PE 文件头紧挨着 DOS stub
PE Header 是 PE 相关结构 NT 映像头 (IMAGE_NT_HEADER) 的简称, 里面包含着许多 PE 装载器用到的重要字段.
执行体在支持 PE 文件结构的操作系统中执行时, PE 装载器将从 IMAGE_DOS_HEADER 结构中的 e_lfanew 字段里找到 PE Header 的起始偏移量, 加上基地址就得到 PE 文件头的指针.
PNTHeader = ImageBase + dosHeader --> e_lfanew
IMAGE_NT_HEADER 结构
如果是没什么用的,东西, 那么 PE 加载器是不会管它的, 这时候我们就可以利用这些东西, 往里面加点我们自己的东西.
这个结构, 自行查阅.