| PE文件结构剖析 |
|
| 作者:未知 文章来源:网络收集 点击数: 更新时间:2006-3-29 15:34:17
|
| 本部分内容:/文件解说/PE剖析图/W32dasm反汇编参考/PE剖析中所用结构参考
大家都很清楚,了解可执行文件的结构有多么的重要,DOS下如此,Windows下也同样如此。如果你想加密程序,编写病毒等,了解PE文件结构必是不可缺少的。大家也可能见到很多这方面的资料,但都是从理论上解说一下,很少见到拿一个具体文件开刀的。这里,我就用前面“系列4”中的文件4.EXE为例来剖析一下PE文件格式,因时间关系,不可能一下子就写的很完善,如可行,以后再慢慢补来。
=============================================================== 对于本文件,红色外框将文件分成4个部分,各部分的内容是: Ⅰ - 文件头; Ⅱ - 代码段;.text section Ⅲ - 引入表;.rdata section Ⅳ - 数据段;.data section 可以看出,每部分都有大量的垃圾数据,用绿色的叉号进行标注。 我们先从整体看一下文件的结构:(要结合PE剖析图来看) ---------------------------------------------------------- 1、IMAGE_DOS_HEADER 虽然你这是Windows下的程序,但保不准别人会拿它到DOS下执行,当然肯定不是想象的结果啦。该文件头和DOS下可执行文件的文件头基本上是一样的,所以你也可以认为它是一个标准的DOS下的EXE文件,只不过程序执行的结果是显示一个错误信息:This program cannot be run in DOS mode.,意思是这是Windows下的程序,到Windows下用吧! 该结构的最后一个元素e_lfanew指示PE文件头的位置,是个重要的数据。 对本例,该元素位于文件偏移量是3C的位置,其值是000000B0。 2、dos下执行时的程序部分 3、dos执行时显示的错误信息 4、垃圾数据 ----------------------------------------------------------- 就是PE文件头啦,它是一个IMAGE_NT_HEADERS STRUCT结构 5、PE文件标记,db 'PE',0,0 6、是一个IMAGE_FILE_HEADER结构 7、是一个IMAGE_OPTIONAL_HEADER结构 8、是一个IMAGE_DATA_DIRECTORY结构数组,共16项 9、是一个IMAGE_SECTION_HEADER结构数据,项数由结构6中 NumberOfSections 确定。   [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>
|
|
[ 收藏此页到: 天天|和讯|博采|ViVi|狐摘|我摘|天极 ] 文章录入:kinda 责任编辑:kinda |
|
上一篇文章: 把数据写到代码段 下一篇文章: 建立自己的动态链接库 |
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |