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

PE文件格式详解(上)

 2006-07-20 11:43:30 来源:WEB开发网   
核心提示: 标准域首先,请注意这个结构被划分为“标准域”和“NT附加域”,PE文件格式详解(上)(9),所谓标准域,就是和UNIX可执行文件的COFF格式所公共的部分,已载入映像的代码(“.text”段)的相对偏移量,&middo

标准域

首先,请注意这个结构被划分为“标准域”和“NT附加域”。所谓标准域,就是和UNIX可执行文件的COFF格式所公共的部分。虽然标准域保留了COFF中定义的名字,但是Windows NT仍然将它们用作了不同的目的——尽管换个名字更好一些。

·Magic。我不知道这个域是干什么的,对于示例程序EXEVIEW.EXE示例程序而言,这个值是0x010B或267(译注:0x010B为.EXE,0x0107为ROM映像,这个信息我是从eXeScope上得来的)。

·MajorLinkerVersion、MinorLinkerVersion。表示链接此映像的链接器版本。随Window NT build 438配套的Windows NT SDK包含的链接器版本是2.39(十六进制为2.27)。

·SizeOfCode。可执行代码尺寸。

·SizeOfInitializedData。已初始化的数据尺寸。

·SizeOfUninitializedData。未初始化的数据尺寸。

·AddressOfEntryPoint。在标准域中,AddressOfEntryPoint域是对PE文件格式来说最为有趣的了。这个域表示应用程序入口点的位置。并且,对于系统黑客来说,这个位置就是导入地址表(IAT)的末尾。以下的函数示范了如何从可选头部获得Windows NT可执行映像的入口点。 //PEFILE.C
LPVOID WINAPI GetModuleEntryPoint(LPVOID lpFile)
{
 PIMAGE_OPTIONAL_HEADER poh;
 poh = (PIMAGE_OPTIONAL_HEADER)OPTHDROFFSET(lpFile);
 if (poh != NULL)
  return (LPVOID)poh->AddressOfEntryPoint;
 else
  return NULL;
}
·BaseOfCode。已载入映像的代码(“.text”段)的相对偏移量。

·BaseOfData。已载入映像的未初始化数据(“.bss”段)的相对偏移量。

上一页  4 5 6 7 8 9 10  下一页

Tags:PE 文件 格式

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