一、什么是PE?
PE文件的全称是Portable Executable,意为可移植的可执行的文件,常见的EXE、DLL、OCX、SYS、COM都是PE文件,PE文件是微软Windows操作系统上的程序文件,ELF文件是LINUX的文件结构
二、那些领域用到PE文件格式?
1.病毒与反病毒
2.外挂与反外挂
3.加壳与脱壳(保护与破解)
4.软件汉化等
三、PE整体结构
1.DOS头
1.IMAGE_DOS_HEADER结构 DOS MZ文件头 大小为64字节
4D5A开头加DOS块最后跟着为50 45 00 00就是PE结构的特征,这里去除掉就可以去除DLL的PE特征
2.DOS块 大小由有IMAGE_DOS_HEADER最后4字节指定大小,这里本来是给DOS系统用的,现在没用了,所以可以写一些病毒程序在这块里面
2.PE头
pe头一共分为3部分
1.PE信息
DOS块尾部跟着4个字节50 45 00 00 (PE加2个空格 )
2.标准PE头(20个字节)
PE信息后面20个字节就是标准PE头
3.扩展PE头
扩展PE头跟在标准PE头后面,32位和64位的扩展PE头默认大小不一样,32位扩展PE头大小为224字节,64位是240字节,实际大小还是需要看标准PE头里面声明的扩展PE头大小声明
3.节表
节表就是对下面每个节的描述信息
4.节数据
1.每个节在硬盘里面的文件对齐和内发里面的对齐大小是不一样的,对齐大小在节表里面有描述
2.节的数量不是固定的,个数多在节表里面有描述