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个字段

到此,文件头结束,文件头在内存中的排列与在磁盘中的排列是一致的,在磁盘中的偏移是多少其在内存中的偏移就是多少。接着文件头的就是节表了,放在下一篇来说。

http://www.zeroplace.cn/article.asp?id=281
PE文件的装载过程(1)
http://www.zeroplace.cn/article.asp?id=282
PE文件的装载过程(2)
http://www.zeroplace.cn/article.asp?id=283
PE文件的装载过程(3)
http://www.zeroplace.cn/article.asp?id=284
PE文件的装载过程(4)


文章来自: 本站原创
Tags:
评论: 0 | 查看次数: 7849