多语言展示
当前在线:702今日阅读:154今日分享:43

手工打造PE文件:[1]什么是PE文件

翻阅了很多资料,也有了一个完整的思路,我们先从PE的各部份认识起,然后将会对PE文件有一个全新的认识和进步,希望对各位有所帮助,文章中如果有不当的地方或者错误欢迎给我指出或者留言在本博客!首先我们得了解为什么要手工打造PE文件:我们知道,往往从一个系统可执行文件结构上,就可以看整个操作系统的一些特性。也就是说PE里有Windows操作系统结构与运行机理的影子。由此可见,PE文件必然是一个非常庞杂且逻辑复杂的结构,那么为什么我们还要“自取其辱”来手工制造一个PE文件呢?这就要从PE文件的重要性说起了。我们现今组成Windows大家庭的主要成员就是PE文件了,里面包括EXE、DLL、OCX、SYS等一切最有价值的文件都是PE文件格式,出于对版权的考虑或对某种技术的渴求,任何一种与Windows系统相关的行为最终都要归集到这里--PE文件。特别是对于想学习加壳、破解、搞虚拟机的朋友们来说,熟知PE文件结构更是必不可少的基本功!但也正是由于PE文件的复杂性,我们才要采取一些特别的办法来攻克它,其中手工打造PE文件就是一条捷径。你可以想像一下,如果你都可以手工打造PE文件的话,那么对于PE文件的了解更是可见一斑了。但是我还想提醒一下各位读者,即便是如此,我们所了解的也仅仅是一部分,不过一般情况下已经足够了。下面我们就来看看PE文件的整体结构,找了很多,这个算是比较完整和清晰的了,花了点时间做成了一个表:分类 详细 大小(byte) 解释 DOS头部 DOSHeader(IMAGE_DOS_HEADER) 64 MZ头部 DOSStub 112 实模式残余程序 PE文件头 "PE"00(Signature) 4 PE文件标志 IMAGE_FILE_HEADER 20 PE文件头 IMAGE_OPTIONAL_HEADER32 96 PE文件可选头 数据目录表 128 块表 IMAGE_SECTION_HEADER 40 各段头部 IMAGE_SECTION_HEADER 40 IMAGE_SECTION_HEADER 40 块 .text 512 一般存储汇编机器码 .rdata 512 存储输入表、输出表、IAT、资源等等信息 .data 512 一般存储const字符串等 调试信息 COFF行号 NULL COFF符号表 NULL CodeView调试信息 NULL
推荐信息