PE文件小窥

昨天看了fengmk2一篇博文:PE文件格式小炒

http://www.cnblogs.com/fengmk2/archive/2008/06/23/1228393.html

这篇博客里用实例分析了,PE文件格式,看得我心里痒痒,也说几句吧,不过我是初学者,水平可能不够,呵呵,大家一起讨论吧。

我将fengmk2画的结构图加了几个定位说明。

 

 

    Dos_stub由Dos头和一小段Dos程序组成,Dos头的长度为64字节,即从0x00000000处到0x0000003Fh处。而Dos程序的长度不定,因此在Dos头中用偏移量e_lfanew记录file-header的偏移量。下面是Dos头的定义:

 

通过e_lfanew可以定位到file_header:下面这两种方法均可:

方法1:

 

Code

0x3c即是e_lfanew的起始地址。

方法2:

 

列出NT头的定义,可以看出包列文件头和可选文件头两部分

 

Code
Code
Code

      下面我详细分析一下可选文件头,可选文件头非常重要,因此它绝对不是可选的。它包含了模块基地址、代码和数据的大小和基地址、线程堆栈和进程堆的配置等信息。最后一个成员DataDirectory数据表中,含有导入表、导出表、资源和重定位表等等重要的表项,其详细的定义如下:

Code

太长了,不想写了,估计也没有人愿意看了,下回再写吧。(^_^)

小人本潜水在思源的贴边
ID又多 又有钱
快活乐无边
谁知道站总监
他蛮横不留情面
他勾结站长目无天
占我ID夺我钱
我马甲跟他来翻脸
反被他来把经验减
我同学骂他欺新人
反被他捉进了小黑屋里面
874了一百遍啊一百遍
啊 最后他咬舌自尽 遗恨人间
他还将我和马甲赶出了思源 流落在人间
我为求回思源
无奈行乞在贴前
谁知道站总监他实在太阴险
知道此情形竟派人来暗算将我发文狂删到0篇
小人ID强 残命独留全
可怜马甲他 竟遭删
为求养ID
惟有傍人卖身自作践
一面苦赚钱 一面写诗篇
发誓把名气显
手刃总监意志坚啊
从此总监ID念心间
我永铭记此仇不供戴天
原文地址:https://www.cnblogs.com/CUCmehp/p/1423146.html