WEB开发网
开发学院软件开发VC PE文件格式详解(上) 阅读

PE文件格式详解(上)

 2006-07-20 11:43:30 来源:WEB开发网   
核心提示: MS-DOS头部占据了PE文件的头64个字节,描述它内容的结构如下: //WINNT.Htypedef struct _IMAGE_DOS_HEADER { // DOS的.EXE头部USHORT e_magic; // 魔术数字USHORT e_cblp; // 文件最后页的字节数USH

MS-DOS头部占据了PE文件的头64个字节,描述它内容的结构如下: //WINNT.H
typedef struct _IMAGE_DOS_HEADER { // DOS的.EXE头部
 USHORT e_magic; // 魔术数字
 USHORT e_cblp; // 文件最后页的字节数
 USHORT e_cp; // 文件页数
 USHORT e_crlc; // 重定义元素个数
 USHORT e_cparhdr; // 头部尺寸,以段落为单位
 USHORT e_minalloc; // 所需的最小附加段
 USHORT e_maxalloc; // 所需的最大附加段
 USHORT e_ss; // 初始的SS值(相对偏移量)
 USHORT e_sp; // 初始的SP值
 USHORT e_csum; // 校验和
 USHORT e_ip; // 初始的IP值
 USHORT e_cs; // 初始的CS值(相对偏移量)
 USHORT e_lfarlc; // 重分配表文件地址
 USHORT e_ovno; // 覆盖号
 USHORT e_res[4]; // 保留字
 USHORT e_oemid; // OEM标识符(相对e_oeminfo)
 USHORT e_oeminfo; // OEM信息
 USHORT e_res2[10]; // 保留字
 LONG e_lfanew; // 新exe头部的文件地址
} IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER;
第一个域e_magic,被称为魔术数字,它被用于表示一个MS-DOS兼容的文件类型。所有MS-DOS兼容的可执行文件都将这个值设为0x5A4D,表示ASCII字符MZ。MS-DOS头部之所以有的时候被称为MZ头部,就是这个缘故。还有许多其它的域对于MS-DOS操作系统来说都有用,但是对于Windows NT来说,这个结构中只有一个有用的域——最后一个域e_lfnew,一个4字节的文件偏移量,PE文件头部就是由它定位的。对于Windows NT的PE文件来说,PE文件头部是紧跟在MS-DOS头部和实模式程序残余之后的。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:PE 文件 格式

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接