继续看PE文件格式:IMAGE_NT_HEADERS紧接在DOS Stub之后,其位置由IMAGE_DOS_HEADER中的e_lfanew所指;IMAGE_NT_HEADERS由三部分组成,他们分别是DWORD类型的PE签名Signature;IMAGE_FILE_HEADER类型的FileHeader;以及IMAGE_OPTIONAL_HEADER32类型的OptionalHeader。IMAGE_NT_HEADERS总的大小为248字节,其中签名占用4字节,文件头占用20字节,可选头占用224字节
IMAGE_NT_HEADERS和PE签名标志IMAGE_NT_SIGNATURE在头文件winnt.h中的定义如下:
5221 5222 5223 5224 5225 |
typedef struct _IMAGE_NT_HEADERS { DWORD Signature; IMAGE_FILE_HEADER FileHeader; IMAGE_OPTIONAL_HEADER32 OptionalHeader; } IMAGE_NT_HEADERS32, *PIMAGE_NT_HEADERS32; |
4906 |
#define IMAGE_NT_SIGNATURE 0x00004550 // PE00 |