WEB开发网
开发学院网络安全黑客技术 PE文件格式(1) 阅读

PE文件格式(1)

 2007-01-14 20:15:09 来源:WEB开发网   
核心提示:说明:希望本文能够对初级入门CRACKER有一定帮助,翻译存在疏漏或者不准确,PE文件格式(1),希望来信指出,感谢您的指导!感谢看雪为我们提供这个交流平台,如果文件有输出目录,可以在数组成员IMAGE_DIRECTORY_ENTRY_EXPORT内发现一个指针指向那个目录(目录描述结构->THUNKDATA结构

说明:希望本文能够对初级入门CRACKER有一定帮助,翻译存在疏漏或者不准确,希望来信指出。感谢您的指导!感谢看雪为我们提供这个交流平台,让我们技术与时俱进!!

前言:

PE("portableexecutable")文件格式是针对MSwindowsNT,windows95and

win32s的可执行二进制代码(DLLsandprograms)。在windowsNT内,驱动程序也是这个格式。也可以用于对象文件和库。

这个格式是Microsoft设计的,并在1993经过TIS(toolinterfacestandard)委员会(Microsoft,Intel,Borland,Watcom,IBM等)标准化了的。它基于在UNIX和VMS上运行的对象文件和可执行文件的COFF"commonobjectfileformat"格式。

win32SDK包括一个头文件<winnt.h>包括对PE格式的定义。我将提及成员名和定义。你也可能发现DLL文件"imagehelp.dll"非常有用。它是NT的一部分,但文档很少。它的一些函数在"DeveloperNetwork"被描述。

总览:

在PE文件的开始,我们可以发现MSDOS执行部分("stub");这使得任何一个PE文件是有效的DOS执行文件。在DOS-stub之后是32位的魔数0x00004550(IMAGE_NT_SIGNATURE).然后是一个COFF格式的文件头,指明在何种机器上运行,多少个节在里面,连接的时间,是否是可执行文件或者DLL等。DLL和可执行文件的区别:DLL不能够启动,只可以被其他可执行文件使用,一个可执行文件不能够连接到另一个可执行文件。

接着,我们看到一个可选文件头optionalheader(虽然叫“可选”,它实际上一直存在)。

COFF把可选文件头用于库,不用于目标文件。这里告诉我们文件如何被调入:起始地址,预留堆栈数,数据段尺寸。

一个有趣的部分是尾巴上的数组数据目录datadirectories,这些目录包含指向节内数据的指针。例如,如果文件有输出目录,可以在数组成员IMAGE_DIRECTORY_ENTRY_EXPORT内发现一个指针指向那个目录(目录描述结构->THUNKDATA结构->BYNAME结构)。他将指向一个节。

1 2 3 4 5 6  下一页

Tags:PE 文件 格式

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