You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Delphi 10.4中启用SafeSEH与CFG(控制流防护)?

在Delphi 10.4中启用SafeSEH与CFG安全标志

Delphi 10.4支持通过{$SETPEOPTFLAGS}编译指令直接设置PE头的安全标志,结合你已启用的ASLR($140),可按以下方式添加SafeSEH和CFG:

启用SafeSEH

SafeSEH(结构化异常处理保护)对应的PE选项值为$4000,将其与ASLR的标志值合并后,编译指令如下:

{$SETPEOPTFLAGS $4140}  // 同时启用ASLR ($140) + SafeSEH ($4000)

注意:SafeSEH仅对32位Windows程序有效,64位程序默认不依赖该机制,转而使用SEHOP等替代方案。

启用CFG

CFG(控制流防护)对应的PE选项值为$40000,合并ASLR后的指令为:

{$SETPEOPTFLAGS $40140}  // 同时启用ASLR ($140) + CFG ($40000)

若需同时启用ASLR、SafeSEH和CFG(仅32位程序适用),可合并所有标志值:

{$SETPEOPTFLAGS $44140}  // ASLR ($140) + SafeSEH ($4000) + CFG ($40000)

验证标志生效

编译完成后,可通过dumpbin等工具查看PE头的DllCharacteristics字段,确认对应标志位是否被设置:

  • ASLR对应IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE($0040)和IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY($0100),合值$140
  • SafeSEH对应IMAGE_DLLCHARACTERISTICS_SAFESEH($4000)
  • CFG对应IMAGE_DLLCHARACTERISTICS_GUARD_CF($40000)

内容的提问来源于stack exchange,提问作者RajKumar Sivanantham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 03:59:55