前面多篇文章讲了PE文件格式,导入导出表的解析。
这里新开一篇来作为总结,或者说作为最开始的概述。
本文以 kernel32.dll 为例。

使用工具 PEView.exe 查看如下:
PE 文件总体结构概述
可以看到其主要分成几个部分:
1: Dos 头,IMAGFE_DOS_HEADER 长度 0x40
2: Dos Stub 。
3: NT Header 起始位置由 Dos头中最后一个字段指定。
4: 连续几个区段信息入,图中有五个区段
5: 连续区段具体信息,图中有五个
6: 签名信息(可选的,没有签名就没有)

1. DOS 头

PE 文件总体结构概述

2. DOS Sub

PE 文件总体结构概述

3. NT Header

PE 文件总体结构概述
NT Header 分三部分

第一部分是 Signature。四个字节,就是 PE\0\0

PE 文件总体结构概述

第二部分是 File Header,工具直接可以看到各项的值

PE 文件总体结构概述

第三部分 Option Header

PE 文件总体结构概述
其中第三部分中的最后一部分是目录表信息(一共最多16个):
PE 文件总体结构概述
导入导出表基本信息就是从这里开始找的。

4.连续的区段信息

PE 文件总体结构概述

5.具体的区段信息

PE 文件总体结构概述

6. 签名信息

PE 文件总体结构概述

如果只是分析数据,而不是要了解数据怎么具体对应的,用该工具直接查看很方便。

相关文章: