Dal*_*kar 5 delphi windows-8 app-certification-kit windows-8.1
据我所知,32位Delphi桌面应用程序无法通过Windows 8.1认证因为缺少SafeSEH,桌面Delphi应用程序是否可以通过Windows 8认证
但是64位Delphi桌面应用程序呢?他们是否可以通过其他要求,因为他们不必满足SafeSEH要求?
如果答案是肯定的,那么是否需要将任何编译器/链接器设置设置为特定值,以及所需的最小Delphi版本(显然至少为XE2).
我特别考虑了认证要求的第3部分.
3. Apps支持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不适用,你回家了.