PE档案格式分析

2008-12-12

Portable Executable简称PE,是Windows应用程序的档案格式。了解PE格式,能够使用户熟悉应用程序的组成。对于一些破坏性应用程序的病毒,杀毒软件主要是通过查看应用程序的PE档案了解其是否被感染。

PE档案主要由DOS头,PE表头,段等几部分组成,如下:

=================================

DOS头(MZ)

PE\0\0       ─┐

PE文件头 ─┼─ PE表头

数据目录   ─┘

段表

.text .data .edata .idata    —>段,包括代码段、数据段等

COFF行号(可选)

COFF符号(可选)

调试信息   (可选)

=================================

对于DOS头,对应的结构为IMAGE_DOS_HEADER,其中,e_lfanew成员表示DOS头的开始位置相对于PE表头的偏移量.PE表头由IMAGE_NT_HEADERS结构表示,包含有PE的签名,PE文件头,数据目录等信息. 在PE表头之后是段,对应的结构为IMAGE_SECTION_HEADER,其中包含有段名称,段原始数据的偏移量等信息,在程序中,可以通过段表获得段的实际位置.

从书上摘抄,用了不少时间.