基于PEview分析PE文件(4-4)

5 节(section)头

从图3可以看出,PE文件的NT头之后就是节(section)头,每个节头的大小是40字节。在“4.2 IMAGE_FILE_HEADER”中提到,本PE文件包含9个节,可以从图3中找到这9个节对应的节头。表1列出了各节头的对应节的内容。

                                                                                  表1 节头对应节的内容

节名

内容

节名

内容

.bss

未初始化的数据

.data

代码节

.edata

导出表

.idata

导入表

.pdata

异常信息

.rdata

只读的已初始化数据(常量)

.reloc

重定位信息

.rsrc

资源目录

.sbss

与GP相关的未初始化数据

.sdata

与GP相关的已初始化数据

.text

默认代码节

.idlsym

包含已注册的SEH,以支持IDL

5.1 节头的格式

在PEview左侧的树形控件中选择IAMGE_SECTION_HEADER.text,即默认代码节的节头,在右侧可以看到默认代码节的节头格式,如图11所示。

 

图11 IAMGE_SECTION_HEADER.text结构

其中,Name表示节头的名称,其大小为8个字节;Virtual Size表示节头对应的节的大小,其大小为4个字节;RVA是Relative Virtual Address的简称,即相对虚拟地址,指定了节头对应节的RVA,其大小为4个字节;Size of Raw Data指的是磁盘文件中已经初始化数据的大小,其大小为4个字节;Pointer to Raw Data、Pointer to Relocations和Pointer to Line Numbers分别保存了节中数据起始地址、重定位项起始地址和行号信息数量的地址,大小均为4个字节;Number of Relocations和Number of Line Numbers分别表示节中重定位项的数量和行号信息的数量,大小均为2个字节,Characteristics是描述节特征的标志,大小为4个字节。

5.2 Characteristics节特征格式

在“5.1 节头的格式”中提到,Characteristics是描述节特征的标志,其大小为4个字节,共32位,每位的含义如表2所示。

                                                                          表2 Characteristics各位含义

位数

含义

位数

含义

1-5

未使用

26

此节可以在需要时被丢弃

6

此节包含可执行代码

27

此节不能被缓存

7

此节包含已初始化的数据

28

此节不能被交换到页面文件中

8

此节包含未初始化的数据

29

此节可以在内存中共享

9-15

未使用

30

此节可以作为代码执行

16

此节包含通过全局指针来引用的数据

31

此节可读

17-24

未使用

32

此节可写

25

此节包含扩展的重定位信息

 

 

从图11可以看出,该PE文件的Characteristics的值是0x20000060,即10 0000 0000 0000 0000 0000 0110 0000‬,对应表2可以看出,该PE文件的默认代码节中包含了可执行代码、已初始化数据,并且该节可以作为代码执行。

发布了314 篇原创文章 · 获赞 206 · 访问量 61万+

猜你喜欢

转载自blog.csdn.net/hou09tian/article/details/100515260
今日推荐