【发布时间】:2012-06-27 03:06:50
【问题描述】:
对于 Windows 8 应用程序认证,有(除其他外)以下要求:
- 3.2 必须使用
/SafeSEH标志编译您的应用程序,以确保安全的异常处理 - 3.3 必须使用
/NXCOMPAT标志编译您的应用以防止数据执行 - 3.4 必须使用
/DYNAMICBASE标志编译您的应用程序以实现地址空间布局随机化 (ASLR)
我无法找到如何在 C++Builder XE 中启用这些。
对于/NXCOMPAT 和/DYNAMICBASE,可以使用来自VS 的editbin.exe 或来自Cygwin 的peflags.exe。虽然我会对可能的副作用更有信心,但如果有本地方法可以启用这些。
无论如何,我对/SafeSEH 完全不知所措。
【问题讨论】:
-
当然 Delphi XE2 不会生成带有 Safe Exception Handler Tables 的可执行文件。我没有 CPPBuilder 来检查,但我敢打赌。我认为您将不走运,应该提交 QC 请求。实际上,结构化异常处理程序可能是安全的,但如果 PE 文件没有标记为这样,那对您来说并没有多大用处。您的 64 位应用程序会很好,但在 CPPBuilder 中这也是不可能的。
标签: delphi windows-8 c++builder seh aslr