“PE文件格式”1.9版 完整译文(附注释)(1)
2007-01-14 20:15:26 来源:WEB开发网位11IMAGE_FILE_NET_RUN_FROM_SWAP(网络文件从交换文件运行)表示如果一个应用程序不可以从网络上运行时,此位置1。在这种情况下,建议操作系统将文件复制到交换文件并从那里执行。
位12IMAGE_FILE_SYSTEM(系统文件)表示如果文件是一个象驱动程序那样的系统文件,此位置1。此位可执行文件不用;我所见过的所有NT系统的驱动程序也不用。
位13IMAGE_FILE_DLL(DLL文件)表示如果文件是一个DLL文件时,此位置1。
位14IMAGE_FILE_UP_SYSTEM_ONLY(仅但处理器系统的文件)表示如果文件不设计运行在多处理器系统上(也就是说,因为此文件严格地依赖单一处理器的一些方式工作,所以它会发生冲突)时,此位置1。
五、相对虚拟地址(RelativeVirtualAddresses)
---------------------------------------------
PE格式大量地使用所谓的RVA(相对虚拟地址)。一个RVA,亦即一个“RelativeVirtualAddresses(相对虚拟地址)”,是在你不知道基地址时,被用来描述一个内存地址的。它是需要加上基地址才能获得线性地址的数值。基地址就是PE映象文件被装入内存的地址,并且可能会随着一次又一次的调用而变化。
例如:假若一个可执行文件被装入的地址是0x400000,并且从RVA0x1560处开始执行,那么有效的执行开始处将位于0x401560地址处。假若它被装入的地址为0x100000,那么执行开始处就位于0x101560地址处。
因为PE-文件中的各部分(各节)不需要像已载入的映象文件那样对齐,事情变得复杂起来。例如,文件中的各节常按照512(十六进制的0x200----译者注)字节边界对齐,而已载入的映象文件则可能按照4096(十六进制的0x1000----译者注)字节边界对齐。参见下面的“SectionAlignment(节对齐)”和“FileAlignment(文件对齐)”。
更多精彩
赞助商链接