PE简介
PE文件使用的是一个平面地址空间,所有代码和数据都被合并在一起,组成一个很大的结构。
详细的PE文件示意图
PE内容
文件的内容被分割为不同的区块,块中包含代码或数据。各个区块按页边界来对齐,区块没有大小限制,是一个连续的结构。
PE属性
此外,每个块有自己在内存中的一套属性,比如说这个区块是否包含代码、是否只读或可读/写等。
可以看到有RWE三种访问限制
windows加载器(PE装载器)
Windows加载器(又称PE装载器)遍历PE文件并决定文件的哪一部分被映射,这种映射方式是将文件较高的偏移位置映射到较高的内存地址中。
当磁盘文件一旦加载入内存中,磁盘上的数据结构布局和内存中的数据结构布局是一致的。
PE头部
文件的头部用来标识该文件符合PE结构的规范
OD中查看PE结构
MS-DOS头部
在dos头部中,我们关注4D 5A,表示一个DOS的可执行文件
PE的正式头部与MS-DOS头部的偏移距离永远是3Ch
在这里显示丛00 00 00 C0开始是PE头部
我们也可以在二进制中发现
合格的PE结构文件,开头是50 45 00 00