Google

星期三, 一月 23, 2008

PE Format(14)

试画映象文件的全图如下:
  +-------------------+
   |  DOS-根    |
   +-------------------+
   |   文件头   |
   +-------------------+
   |   可选头   |
   |----------|
   |         |----------------+
   |  数据目录   |        |
   |         |        |
   | (指向节中   |-------------+ |
   |  目录的RVA)  |      | |
   |         |---------+ | |
   |         |    | | |
   +-------------------+    | | |
   |         |-----+ | | |
   |   节头    |  | | | |
   |  (指向节   |--+ | | | |
   |  边界的RVA)  | | | | | |
   +-------------------+<-+ | | | |
   |         |  |<-+ | |
   |   节数据1  |  |   | |
   |         |  |<-----+ |
   +-------------------+<----+     |
   |         |        |
   |   节数据2  |        |
   |         |<--------------+
   +-------------------+

  每个节都有一个节头,并且每个数据目录都会指向其中的一个节(几个数据目录有可能指向同一个节,而且也可能有的节没有数据目录指向它们)。

  八、节的原始数据(Sections'rawdata)

  --------------------------------------

  1.概述(general)

  -------

  所有的节在载入内存后都按“SectionAlignment”(节对齐)对齐,在文件中则以“FileAlignment”(文件对齐)对齐。节由节头中的相关项来描述:在文件中你可通过“PointerToRawData”(原始数据指针)来找到,在内存中你可通过“VirtualAddress”(虚拟地址)来找到;长度由“SizeOfRawData”(原始数据长度)决定。

  根据节中包含的内容,可分为好几种节。大多数(并非所有)情况下,节中至少由一个数据目录,并在可选头的数据目录数组中有一个指针指向它。

  2.代码节(codesection)

标签: , ,

0 条评论:

发表评论

<< 主页

辽ICP备05003652号
流风洄雪听天籁,轻云蔽日看落花

Powered by Blogger