WEB开发网
开发学院网络安全黑客技术 PE文件格式(2) 阅读

PE文件格式(2)

 2007-01-14 20:15:04 来源:WEB开发网   
核心提示: bit15(IMAGE_SCN_MEM_FARDATA)置1,不确定,PE文件格式(2)(2),bit17(IMAGE_SCN_MEM_PURGEABLE)置1,节的数据是可清除的,(节头哪里去了?此段有问题!!)+---+|DOS-stub|+---+|file-header|+---+

bit15(IMAGE_SCN_MEM_FARDATA)置1,不确定。

bit17(IMAGE_SCN_MEM_PURGEABLE)置1,节的数据是可清除的。

bit18(IMAGE_SCN_MEM_LOCKED)置1,节不可以在内存内移动。

bit19(IMAGE_SCN_MEM_PRELOAD)置1,节必须在执行开始前调入。

Bits20to23指定对齐。一般是库文件的对象对齐。

bit24(IMAGE_SCN_LNK_NRELOC_OVFL)置1,节包含扩展的重定位。

bit25(IMAGE_SCN_MEM_DISCARDABLE)置1,进程开始后节的数据不再需要。

bit26(IMAGE_SCN_MEM_NOT_CACHED)置1,节的数据不得缓存。

bit27(IMAGE_SCN_MEM_NOT_PAGED)置1,节的数据不得交换出去。

bit28(IMAGE_SCN_MEM_SHARED)置1,节的数据在所有映象例程内共享,如DLL的初始化数据。

bit29(IMAGE_SCN_MEM_EXECUTE)置1,进程得到“执行”访问节内存。

bit30(IMAGE_SCN_MEM_READ)置1,进程得到“读出”访问节内存。

bit31(IMAGE_SCN_MEM_WRITE)置1,进程得到“写入”访问节内存。

在节头后面我们看到节自身,他们在文件内按照'FileAlignment'字节数对齐。即在可选头和每个节的后面将添加0。节按照他们的RVAs排序.当加载到RAM,节的对齐按照SectionAlignment。

例如:一个可选头在偏移量981处结束,文件对齐为512,第一个节起始于1024。你可以借助'PointerToRawData'或者'VirtualAddress'找到节,不必用对齐找节。(节头哪里去了?此段有问题!!)

  +-------------------+
  |DOS-stub     |
  +-------------------+
  |file-header   |
  +-------------------+
  |optionalheader |
  |----------|
  |         |----------------+
  |datadirectories |        |
  |         |        |
  |(RVAstodirec-  |-------------+ |
  |toriesinsections)|      | |
  |         |---------+ | |目录在节内的相对地址
  |         |    | | |
  +-------------------+    | | |
  |         |-----+ | | |
  |sectionheaders |  | | | |
  |(RVAstosection |--+ | | | |节边界的相对地址
  | borders)    | | | | | |
  +-------------------+<-+ | | | |
  |         |  |<-+ | |
  |sectiondata1  |  |   | |节数据
  |         |  |<-----+ |
  +-------------------+<----+     |
  |         |        |
  |sectiondata2  |        |
  |         |<--------------+
  +-------------------+

每个节都有一个节头,每个数据目录将指向一个节(几个数据目录可能指向同一个节),有的节可能没有数据目录指向它。

上一页  1 2 3 4 5 6 7  下一页

Tags:PE 文件 格式

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接