gpt4 book ai didi

delphi - 64位Delphi桌面应用程序可以通过Windows 8.1认证吗

转载 作者:行者123 更新时间:2023-12-03 15:10:11 25 4
gpt4 key购买 nike

据我所知,32 位 Delphi 桌面应用程序无法通过 Windows 8.1 认证,因为缺乏 SafeSEH via Can a desktop Delphi application be certified for Windows 8

但是64位Delphi桌面应用程序又如何呢?由于它们不必满足 SafeSEH 要求,因此它们能否通过其他要求?

如果答案是肯定的话,是否有任何编译器/链接器设置必须设置为特定值,以及所需的最低 Delphi 版本是多少(显然至少是 XE2)。

我正在特别考虑认证要求的第 3 部分。

<强>3。应用支持 Windows 安全功能

Windows 操作系统具有许多支持系统安全和隐私的功能。应用程序必须支持这些功能以维护操作系统的完整性。编译不当的应用程序可能会导致缓冲区溢出,进而导致拒绝服务或允许恶意代码执行。

  • 3.1。您的应用不得使用AllowPartiallyTrustedCallersAttribute (APTCA) 来确保安全访问强名称程序集

  • 3.2 您的应用必须使用/SafeSEH 标志进行编译,以确保安全的异常处理(仅限 32 位)

  • 3.3 您的应用必须使用/NXCOMPAT 标志进行编译,以防止数据执行

  • 3.4 您的应用必须使用/DYNAMICBASE 标志进行地址空间布局随机化 (ASLR) 编译

  • 3.5 您的应用不得读取/写入共享 PE 部分

最佳答案

Delphi 唯一难以满足的要求是/SafeSEH。但这不适用于 64 位应用程序。

Windows x64 ABI 使用与 x86 完全不同的异常模型。

x86 异常模型是基于堆栈的。 /SafeSEH 标志适用于基于堆栈的异常。 x64 ABI 使用基于表的异常。而 /SafeSEH 根本不适用。这解释了您引用的仅 32 位文本。

所以很容易满足3.1和3.5。不要做那些事情。 3.3 和 3.4 只是 PE 标志,您可以使用 {$SetPEFlags} 设置。那么 3.2 不适用,您就回家了。

关于delphi - 64位Delphi桌面应用程序可以通过Windows 8.1认证吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27583859/

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