PE头字段说明

一、 PE格式结构图

建议放大看
在这里插入图片描述

二、PE各字段说明

未注释的代表是重点


1、DOC头:										
											
  WORD   e_magic        *		"MZ标记" 用于判断是否为可执行文件.						
  DWORD  e_lfanew;      *		PE头相对于文件的偏移,用于定位PE文件		

2、标准PE头:										
											
    WORD    Machine;           *	程序运行的CPU型号:0x0 任何处理器/0x14C 386及后续处理器						
	WORD    NumberOfSections;  *	文件中存在的节的总数,如果要新增节或者合并节 就要修改这个值.						
	//DWORD   TimeDateStamp;        *	时间戳:文件的创建时间(和操作系统的创建时间无关),编译器填写的.						
	//DWORD   PointerToSymbolTable; 										
	//DWORD   NumberOfSymbols; 										
	WORD    SizeOfOptionalHeader; *	可选PE头的大小,32位PE文件默认E0h 64位PE文件默认为F0h  大小可以自定义.						
	//WORD    Characteristics;      *	每个位有不同的含义,可执行文件值为10F 即0 1 2 3 8位置1 	
3、可选PE头:										
											
	WORD    Magic;        *			说明文件类型:10B 32位下的PE文件     20B 64位下的PE文件						
/*	BYTE    MajorLinkerVersion;										
	BYTE    MinorLinkerVersion;										
	DWORD   SizeOfCode;*				所有代码节的和,必须是FileAlignment的整数倍 编译器填的  没用						
	DWORD   SizeOfInitializedData;*				已初始化数据大小的和,必须是FileAlignment的整数倍 编译器填的  没用						
	DWORD   SizeOfUninitializedData;*				未初始化数据大小的和,必须是FileAlignment的整数倍 编译器填的  没用						
*/	DWORD   AddressOfEntryPoint;*	程序入口						
//	DWORD   BaseOfCode;*				代码开始的基址,编译器填的   没用						
//	DWORD   BaseOfData;*				数据开始的基址,编译器填的   没用						
	DWORD   ImageBase;*				内存镜像基址						
	DWORD   SectionAlignment;*		内存对齐						
	DWORD   FileAlignment;*			文件对齐						
/*	WORD    MajorOperatingSystemVersion;										
	WORD    MinorOperatingSystemVersion;										
	WORD    MajorImageVersion;										
	WORD    MinorImageVersion;										
	WORD    MajorSubsystemVersion;										
	WORD    MinorSubsystemVersion;										
	DWORD   Win32VersionValue;										
*/	DWORD   SizeOfImage;*		    内存中整个PE文件的映射的尺寸,可以比实际的值大,但必须是SectionAlignment的整数倍						
	DWORD   SizeOfHeaders;*			所有头+节表按照文件对齐后的大小,否则加载会出错						
/*	DWORD   CheckSum;*				校验和,一些系统文件有要求.用来判断文件是否被修改.						
	WORD    Subsystem;										
	WORD    DllCharacteristics;										
	DWORD   SizeOfStackReserve;*				初始化时保留的堆栈大小 		
	DWORD   SizeOfStackCommit;*				初始化时实际提交的大小 		
	DWORD   SizeOfHeapReserve;*				初始化时保留的堆大小 		
	DWORD   SizeOfHeapCommit;*				初始化时实践提交的大小 		
	DWORD   LoaderFlags;						
*/	DWORD   NumberOfRvaAndSizes;*	目录项数目	

三、对应关系

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值