gpt4 book ai didi

Delphi:将 ImageBase 设置为大于 32 位(对于 64 位 Windows 应用程序)

转载 作者:行者123 更新时间:2023-12-03 15:21:54 28 4
gpt4 key购买 nike

我一直在 Delphi 中使用 {$IMAGEBASE} 指令,但我可以看到我只能输入低于 $FFFFFFFF (32 位)的值.

我正在编译为 x64,并且需要设置大于 32 位的图像库,但 Delphi 会忽略 64 位 ImageBase 中较高的 32 位 DWORD。

有人设法将 Delphi 的 ImageBase 设置为高于 $FFFFFFFF 的值吗?

我需要它,因为我需要在“高”ImageBase 中测试我的应用程序(由于一些钩子(Hook)测试等)

谢谢!

最佳答案

尽管有新的 PE 可选 header 允许指定大图像基值,但 Delphi 链接器不支持大图像基值。

所以我认为,在 Embarcadero 引入任何此类功能之前,您需要使用第三方工具在构建可执行文件后对其进行 rebase 。例如EDITBIN/REBASE MS 工具链中的选项。

我使用 XE7 构建了一个简单的 64 位 VCL 程序,并像这样重新构建了它:

editbin /rebase:base=0xffffff0000 Project1.exe

我使用 Process Hacker 确认图像库确实符合指定要求。

enter image description here

关于Delphi:将 ImageBase 设置为大于 32 位(对于 64 位 Windows 应用程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44585237/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com