标准PE头属性

标准PE头属性


PE头结构体

typedef struct _IMAGE_NT_HEADERS {
    DWORD Signature;							//PE头标识
    IMAGE_FILE_HEADER FileHeader;				//标准PE头
    IMAGE_OPTIONAL_HEADER32 OptionalHeader;		//扩展PE头
} IMAGE_NT_HEADERS32, *PIMAGE_NT_HEADERS32;

PE标准结构体

typedef struct _IMAGE_FILE_HEADER {
    WORD    Machine;							//表示可以运行在什么样的CPU上 任意:0  ,Intel386及后续:14C ,x64:8664
    WORD    NumberOfSections;					//表示节的数量
    DWORD   TimeDateStamp;						//编译器填写的时间戳
    DWORD   PointerToSymbolTable;				//调试相关
    DWORD   NumberOfSymbols;					//调试相关
    WORD    SizeOfOptionalHeader;				//可选PE头的大小(32位PE文件:0xE0 , 64位PE文件:0xF0)
    WORD    Characteristics;					//文件属性
} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;

在这里插入图片描述

WORD Characteristics 成员里值的含义 (文件属性)

#define IMAGE_FILE_RELOCS_STRIPPED           0   // 文件中不存在重定位信息
#define IMAGE_FILE_EXECUTABLE_IMAGE          1   // 文件是可执行的
#define IMAGE_FILE_LINE_NUMS_STRIPPED        2   // 不存在行信息
#define IMAGE_FILE_LOCAL_SYMS_STRIPPED       3   // 不存在符号信息
#define IMAGE_FILE_AGGRESIVE_WS_TRIM         4   // 调整工作表
#define IMAGE_FILE_LARGE_ADDRESS_AWARE       5   // 应用程序可处理大于2GB的地址
											 6   // 此标志保留
#define IMAGE_FILE_BYTES_REVERSED_LO         7   // 小尾方式
#define IMAGE_FILE_32BIT_MACHINE             8   // 只在32位平台上运行
#define IMAGE_FILE_DEBUG_STRIPPED            9   // 不包含调试信息
#define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP   10  // 不能从可移动盘运行
#define IMAGE_FILE_NET_RUN_FROM_SWAP         11  // 不能从网络运行
#define IMAGE_FILE_SYSTEM                    12  // 系统文件(如驱动程序),不能直接运行
#define IMAGE_FILE_DLL                       13  // 这是一个DLL文件
#define IMAGE_FILE_UP_SYSTEM_ONLY            14  // 文件不能在多处理器计算机上运行
#define IMAGE_FILE_BYTES_REVERSED_HI         15  // 大尾方式

当文件属性为:010E
0000 0001 0000 1110 (转为二进制对应每一个位)

第一位为0
第二位为1表示:该文件是可执行的
第三位为1表示:不存在行信息
第四位为1表示:不存在符号信息

第九位为1表示:只能在32位平台上运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值