PE Format(14)
试画映象文件的全图如下:
+-------------------+
| DOS-根 |
+-------------------+
| 文件头 |
+-------------------+
| 可选头 |
|----------|
| |----------------+
| 数据目录 | |
| | |
| (指向节中 |-------------+ |
| 目录的RVA) | | |
| |---------+ | |
| | | | |
+-------------------+ | | |
| |-----+ | | |
| 节头 | | | | |
| (指向节 |--+ | | | |
| 边界的RVA) | | | | | |
+-------------------+<-+ | | | |
| | |<-+ | |
| 节数据1 | | | |
| | |<-----+ |
+-------------------+<----+ |
| | |
| 节数据2 | |
| |<--------------+
+-------------------+
每个节都有一个节头,并且每个数据目录都会指向其中的一个节(几个数据目录有可能指向同一个节,而且也可能有的节没有数据目录指向它们)。
八、节的原始数据(Sections'rawdata)
--------------------------------------
1.概述(general)
-------
所有的节在载入内存后都按“SectionAlignment”(节对齐)对齐,在文件中则以“FileAlignment”(文件对齐)对齐。节由节头中的相关项来描述:在文件中你可通过“PointerToRawData”(原始数据指针)来找到,在内存中你可通过“VirtualAddress”(虚拟地址)来找到;长度由“SizeOfRawData”(原始数据长度)决定。
根据节中包含的内容,可分为好几种节。大多数(并非所有)情况下,节中至少由一个数据目录,并在可选头的数据目录数组中有一个指针指向它。
2.代码节(codesection)
+-------------------+
| DOS-根 |
+-------------------+
| 文件头 |
+-------------------+
| 可选头 |
|----------|
| |----------------+
| 数据目录 | |
| | |
| (指向节中 |-------------+ |
| 目录的RVA) | | |
| |---------+ | |
| | | | |
+-------------------+ | | |
| |-----+ | | |
| 节头 | | | | |
| (指向节 |--+ | | | |
| 边界的RVA) | | | | | |
+-------------------+<-+ | | | |
| | |<-+ | |
| 节数据1 | | | |
| | |<-----+ |
+-------------------+<----+ |
| | |
| 节数据2 | |
| |<--------------+
+-------------------+
每个节都有一个节头,并且每个数据目录都会指向其中的一个节(几个数据目录有可能指向同一个节,而且也可能有的节没有数据目录指向它们)。
八、节的原始数据(Sections'rawdata)
--------------------------------------
1.概述(general)
-------
所有的节在载入内存后都按“SectionAlignment”(节对齐)对齐,在文件中则以“FileAlignment”(文件对齐)对齐。节由节头中的相关项来描述:在文件中你可通过“PointerToRawData”(原始数据指针)来找到,在内存中你可通过“VirtualAddress”(虚拟地址)来找到;长度由“SizeOfRawData”(原始数据长度)决定。
根据节中包含的内容,可分为好几种节。大多数(并非所有)情况下,节中至少由一个数据目录,并在可选头的数据目录数组中有一个指针指向它。
2.代码节(codesection)

0 条评论:
发表评论
<< 主页