PE加载重定位

PE exe文件加载有时候会重定位,主要是因为 FILEHEADER中的一个字段 

Characteristics
    这个域描述pe文件的一些属性信息,比如是否可执行,是否是一个动态连接库等.具体定义如下:


#define IMAGE_FILE_RELOCS_STRIPPED           0x0001  // 重定位信息被移除,文件必须加载先前的基地址
#define IMAGE_FILE_EXECUTABLE_IMAGE         0x0002  // 文件可执行
#define IMAGE_FILE_LINE_NUMS_STRIPPED         0x0004  // 行号被移除
#define IMAGE_FILE_LOCAL_SYMS_STRIPPED       0x0008  // 符号被移除
#define IMAGE_FILE_AGGRESIVE_WS_TRIM         0x0010  // Agressively trim working set
#define IMAGE_FILE_LARGE_ADDRESS_AWARE      0x0020  // 程序能处理大于2G的地址
#define IMAGE_FILE_BYTES_REVERSED_LO        0x0080  // Bytes of machine word are reversed.
#define IMAGE_FILE_32BIT_MACHINE             0x0100  // 32位机器
#define IMAGE_FILE_DEBUG_STRIPPED            0x0200  // .dbg文件的调试信息被移除
#define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP  0x0400  // 如果在移动介质中,拷到交换文件中运行
#define IMAGE_FILE_NET_RUN_FROM_SWAP         0x0800  // 如果在网络中,拷到交换文件中运行
#define IMAGE_FILE_SYSTEM                    0x1000  // 系统文件
#define IMAGE_FILE_DLL                      0x2000  // 文件是一个dll
#define IMAGE_FILE_UP_SYSTEM_ONLY            0x4000  // 文件只能运行在单处理器上
#define IMAGE_FILE_BYTES_REVERSED_HI         0x8000  // Bytes of machine word are reversed.

猜你喜欢

转载自blog.csdn.net/caichengji1/article/details/69523325
PE