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

 时间:2024-10-13 16:56:49

翻阅了很多资料,也有了一个完整的思路,我们先从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

  • ubuntu21.04安装配置blender2.92建模工具
  • 怎样查看系统进程
  • CCS UniFlash软件如何更新
  • MATLAB矩阵拼接
  • MMA内部数据之——曲面数据
  • 热门搜索
    炒虾仁的做法 三文鱼做法 醋泡花生米的正确做法 笄怎么读 姝怎么读 意面的做法 鱼怎么画 儿子生日妈妈怎么发朋友圈 炒茄子的做法 酒酿圆子的做法