exe取消动态基址

动态基址开启后,在动态调试是想要和ida静态分析中的地址对应还要进行一步计算,取消动态基址便可以剩下很多时间。

只要修改pe文件头中的Characteristics低位置1

1 typedef struct _IMAGE_FILE_HEADER {
2   WORD  Machine;                    **        机器号     相对该结构的偏移0x00**
3   WORD  NumberOfSections;           **        节区数量   相对该结构的偏移0x02**
4   DWORD TimeDateStamp;              **        时间戳     相对该结构的偏移0x04**
5   DWORD PointerToSymbolTable;       **        符号表偏移  相对该结构的偏移0x08**
6   DWORD NumberOfSymbols;            **        符号表数量  相对该结构的偏移0x0C**
7   WORD  SizeOfOptionalHeader;       **        可选头大小  相对该结构的偏移0x10**
8   WORD  Characteristics;            **        PE文件属性  相对该结构的偏移0x12**
9 } IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;

Characteristics可以是下面一个或者多个值的和

宏定义数值描述
IMAGE_FILE_RELOCS_STRIPPED 0x0001 从文件中删除了重定位信息
IMAGE_FILE_EXECUTABLE_IMAGE 0x0002 该文件是可执行的
IMAGE_FILE_LINE_NUMS_STRIPPED 0x0004 COFF行号从文件中删除
IMAGE_FILE_LOCAL_SYMS_STRIPPED 0x0008 COFF符号表条目从文件中删除
IMAGE_FILE_AGGRESIVE_WS_TRIM 0x0010 废弃
IMAGE_FILE_LARGE_ADDRESS_AWARE 0x0020 该应用程序可以处理大于2GB的地址
IMAGE_FILE_BYTES_REVERSED_LO 0x0080 废弃
IMAGE_FILE_32BIT_MACHINE 0x0100 32位机器
IMAGE_FILE_DEBUG_STRIPPED 0x0200 调试信息已删除并单独存储在另一个文件中
IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 0x0400 如果在移动介质中,拷到交换文件中运行
IMAGE_FILE_NET_RUN_FROM_SWAP 0x0800 如果在网络中,拷到交换文件中运行
IMAGE_FILE_SYSTEM 0x1000 该文件是一个系统文件
IMAGE_FILE_DLL 0x2000 该文件是一个文件是一个动态链接库
IMAGE_FILE_UP_SYSTEM_ONLY 0x4000 该文件应仅在单处理器计算机上运行
IMAGE_FILE_BYTES_REVERSED_HI 0x8000 废弃

pe修改的工具很多,我用的peid

原文地址:https://www.cnblogs.com/DirWang/p/11435990.html