什么是图像库(在windows PE文件中)



我阅读了MSDN上关于PE格式的文档,其中指定:

加载到内存时图像第一个字节的首选地址;必须是64 K的倍数。DLL的默认值为0x10000000。Windows CE EXE的默认值为0x00010000。Windows NT、Windows 2000、Windows XP、Windows 95、Windows 98和Windows Me的默认值为0x00400000

我不太明白这一点。什么是"首选地址"?windows在创建新进程/加载可执行文件时如何使用此字段?

它是虚拟内存中应加载可执行文件的地址,以避免对代码中的绝对跳转指令进行任何调整。OS可以将模块加载到不同的地址(例如,在同一程序所需的2个DLL具有相同的映像库的情况下(,但在这种情况下,加载时需要修补代码。

有关更多信息,请参阅https://msdn.microsoft.com/en-us/library/ms809762.aspx(在那里搜索ImageBase(。

最新更新