我不知道为什么某些Windows可执行文件确实具有重定位。当始终可以将可执行文件加载到任何虚拟地址而不是DLL时,为什么需要它?

最佳答案

是的,EXE中的重定位是可选的,可以删除。但是,如果我们想要 /DYNAMICBASE -生成一个可通过使用地址空间布局随机化(ASLR)在加载时随机重定基础的可执行镜像,则需要重定位。因此,仅出于安全原因,我只能这样说。例如堆栈中的安全cookie,Control Flow Guard等。-所有这些都是可选的,但已使用

关于windows - 为什么在可执行文件中重定位(.reloc节)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44337712/

10-12 14:18