【发布时间】:2020-04-11 03:46:29
【问题描述】:
是否可以在运行时将 Windows 可执行文件加载到不同的基地址。我不是说用/BASE 编译它。它已经编译为在默认基地址0x400000 加载。我想看看当剥离了重定位信息的 PE 加载到与其请求的基地址不同的基地址时的行为。我有限的研究(谷歌的前 2 页)并不表明这是可能的,但我希望有人可以提供可能的黑客攻击。
【问题讨论】:
-
“我想看看当剥离了重定位信息的 PE 被加载到不同于它请求的基地址时的行为” - 很简单:程序将崩溃 因为它的指针不会被重定位,并且某处的某些代码会尝试取消引用它预期被重定位的指针(可能是一些 Win32 函数调用包含在 pre-
main可执行代码中)。 -
我推荐阅读这篇文章,尤其是“2.2:处理二进制固定地址”部分:blog.sevagas.com/PE-injection-explained
-
already happens,除非您更改了默认链接器设置。 /DYNAMICBASE 选项。
标签: windows portable-executable