转载:Windows核心编程(二十)模块的基地址重定位及绑定_woshibendangao的专栏-CSDN博客_基地址重定位
重点:
- 每个DLL模块和可执行文件都有一个首选基地址,表示该模块被映射到进程地址空间时最佳的内存地址。
- 对于可执行文件和DLL中的代码,它们运行的时候所引用的的数据的地址,在链接的时候就已经确定。并且这些都是当exe文件或是DLL被加载到它们的首选基地址处时才是有效的
例如:
对于汇编代码:MOV [0x00414540], 5
它是将5赋值给0x00414540处的内存地址。此地址已经固定。它说明当EXE或是DLL被加载到0x400000处时,0x00414540才是正确的。