PE文件格式(1)
2007-01-14 20:15:09 来源:WEB开发网Bit4(IMAGE_FILE_AGGRESIVE_WS_TRIM)如果操作系统被假定通过页换出抢占式修剪进程的工作集(进程使用的内存数),该位置1。
Bits7(IMAGE_FILE_BYTES_REVERSED_LO)和15(IMAGE_FILE_BYTES_REVERSED_HI)如果文件的的endianess不是机器期望的,则置1,于是读之前必须交换字节。对可执行文件不可靠。
Bit8(IMAGE_FILE_32BIT_MACHINE)如果机器被期望是32位机器,置1。
Bit9(IMAGE_FILE_DEBUG_STRIPPED)如果没有调试信息在文件内,置1。对可执行文件无效。
Bit10(IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP)如果程序不能够从可移动媒体比如软盘或光驱,置1。操作系统建议拷贝文件到交换文件然后执行。
Bit11(IMAGE_FILE_NET_RUN_FROM_SWAP)如果不能够才网络运行,置1。操作系统建议拷贝文件到交换文件然后执行。
Bit12(IMAGE_FILE_SYSTEM)如果文件是类似驱动程序的系统文件,置1。对执行文件无效。
Bit13(IMAGE_FILE_DLL)如果文件是DLL,置1.
Bit14(IMAGE_FILE_UP_SYSTEM_ONLY)如果文件不是为多处理器设计的,置1。
相对虚拟地址RelativeVirtualAddresses
--------------------------
PE格式使用所谓的RVA。用于描述内存地址,如果你不知道基地址的话。需要你加上基地址得到线性地址。基地址是PE映像加载的地址。例如:假如可执行文件加载到0x400000,可执行文件的RVA是0x1560.有效执行起始地址为0x401560.如果被加载到0x100000,则执行起始位置在0x101560.
情况变的复杂起来,由于节不必按照加载的映像那样对齐。例如,节一般按照512字节对齐。加载的映像可能按照4096字节对齐。参看'SectionAlignment'and'FileAlignment'。对齐的意思就是地址值=对齐长度的倍数。
更多精彩
赞助商链接