PE文件格式(1)
2007-01-14 20:15:09 来源:WEB开发网下面2个字节是连接器的版本号'MajorLinkerVersion'和'MinorLinkerVersion',这些值都不可靠,不能总是妥当的反映连接器版本。有些连接器不设置该域。
下面3个longwords(32位)指定执行代码尺寸('SizeOfCode'),初始化数据尺寸
'SizeOfInitializedData',所谓的数据段"datasegment",未初始化数据尺寸
'SizeOfUninitializedData',所谓的"bsssegment".这些数值也不可靠。
往下一个32位的RVA.是入口点的偏移量。('AddressOfEntryPoint').执行从此开始。
下面2个32位是可执行代码('BaseOfCode')和初始化数据('BaseOfData')的RVAs我们对它没有兴趣,因为可以通过节来查看更可靠的信息。非初始化数据没有RVA。
下面是一个32位值,ImageBase'作为整个文件的优先加载地址,包括所有头在内。该值总是
64KB的倍数,文件已经被连接器重定位,如果文件能够真正加载到这个地址,加载器不必重定位文件。如果另一个映像已经被加载到那个地址,则优先地址不可使用。这种情况下,映像被加载到其他地址,需要重定位。如果映像是DLL,还有更多结果,因为"boundimports"不再有效,需要对使用DLL的执行文件进行修正。参见'importdirectory'。
下面2个32位是当映像文件加载后,PE文件的节在内存内的对齐,'SectionAlignment',以及在文件内的对齐'FileAlignment'.一般文件对齐是512,节对齐是4096.
下面2个16位的字是期望的操作系统版本,'MajorOperatingSystemVersion'和'MinorOperatingSystemVersion'。
下面2个16位的字是期望的可执行文件版本,'MajorImageVersion'和
更多精彩
赞助商链接