详解PE文件

笔者在某安全公司实习,第一天被要求了解PE结构,好吧,因为基础不扎实,经过一天的时间了解的啥都不是,,,受到了导师的特殊关照,推荐了我一本没推荐给别人的书--Windows32位汇编程序(罗云彬著)嘿嘿,匿名感谢导师,,,清明三天的PE之旅。

1.1PE文件的结构

pe就是在windows下最常用的可执行文件格式,在pe文件中代码,已经初始化的数据,资源和重定位信息等数据被按照属性分类放在不同的section(简称节)中,每个节的属性和位置等信息用一个IMAGE_SECTION_HEADER结构来描述,所有的IMAGE_SECTION_HEADER结构组成一个节表(Section table),节表数据在PE文件中被放在所有节数据的前面,由于数据是按照属性在节中放置的,不同用途但是属性相同的数据(如导入表,导出表等吧。。。可能被放在同一个节中),所以PE结构还用一系列的数据目录结构IMAGE_DATA_DIRECTORY来分别来指明这些数据的位置。

数据目录表和其他描述文件属性的数据合在一起称为PE头文件,PE头文件被放置在节和节表的前面,

为了与DOS系统的文件格式相容又加上了包括IMAGE_DOS_HEADER结构和DOS Stub的DOS部分

由以上共同组成了PE文件,结构如表所示

4.节数据

。。。

由不同属性数据组成的不同节

文件尾部

 

|

|

|

|

|

|

|

|

|

|

|

|

 

文件头部

.reloc

.rsrc

.data

.text

3.节表

n x IMAGE_SECTION_HEADER 结构

顺序排列的节表

2.PE头文件

16 x  IMAGE_DATA_DIRECTORY 结构

数据目录列表

IMAGE_OPTIONAL_HEADER 结构

IMAGE_NT_HEADER

IMAGE_FILE_HEADER 结构

PE文件表头

“pe”,0,0

PE文件头标志

1.DOS头文件

DOS Stub

DOS块

IMAGE_DOS_HEADER结构

DOS MZ头文件

下面开始分块做笔记了

猜你喜欢

转载自blog.csdn.net/Wolf_xujie/article/details/89037007