PE文件的装载过程(4)
上周毕业答辩,没完成任务,惭愧惭愧。。。。
可选头的最后一部分是DataDirectory字段,这个字段包含了16个IMAGE_DATA_DIRECTORY结构,结构的定义如下:
IMAGE_DATA_DIRECTORY STRUCT
VirtualAddress DWORD ? ;数据的起始RVA
isize DWORD ? ;数据块的长度
IMAGE_DATA_DIRECTORY ENDS
结构很简单,16个IMAGE_DATA_DIRECTORY代表的内容对应如下:
|
0 |
IMAGE_DIRECTORY_ENTRY_EXPORT |
导出表 |
|
1 |
IMAGE_DIRECTORY_ENTRY_IMPORT |
导入表 |
|
2 |
IMAGE_DIRECTORY_ENTRY_RESOURCE |
资源 |
|
3 |
IMAGE_DIRECTORY_ENTRY_EXCEPTION |
异常(具体资料不详) |
|
4 |
IMAGE_DIRECTORY_ENTRY_SECURITY |
安全(具体资料不详) |
|
5 |
IMAGE_DIRECTORY_ENTRY_BASERELOC |
重定位表 |
|
6 |
IMAGE_DIRECTORY_ENTRY_DEBUG |
调试信息 |
|
7 |
IMAGE_DIRECTORY_ENTRY_ARCHITECTURE |
版权信息 |
|
8 |
IMAGE_DIRECTORY_ENTRY_GLOBALPTR |
具体资料不详 |
|
9 |
IMAGE_DIRECTORY_ENTRY_TLS |
Thread Local Storage |
|
10 |
IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG |
具体资料不详 |
|
11 |
IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT |
具体资料不详 |
|
12 |
IMAGE_DIRECTORY_ENTRY_IAT |
导入函数地址表 |
|
13 |
IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT |
具体资料不详 |
|
14 |
IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR |
具体资料不详 |
|
15 |
未使用 |
其中重要的元素有索引值为0、1、5、12的四个,对应的意义如上表所示,在内存中寻找相应的节靠的就是以上的16个字段
到此,文件头结束,文件头在内存中的排列与在磁盘中的排列是一致的,在磁盘中的偏移是多少其在内存中的偏移就是多少。接着文件头的就是节表了,放在下一篇来说。

浙公网安备 33010602011771号