硬件强制实施的栈保护需在windows 11中通过windows安全中心启用,前提是已开启内存完整性且cpu支持cet(第12代intel core或amd ryzen 6000+),并确认bios中启用虚拟化、secure boot、tpm及cet;若图形界面灰显,则需以管理员身份运行powershell执行set-processmitigation -system -enable hardwaredependentstackprotection命令并重启生效。

你需要在 Windows 11 中启用“硬件强制实施的栈保护”(Hardware-enforced Stack Protection),该功能依赖于 CPU 的影子栈(Shadow Stack)能力,可拦截利用栈溢出漏洞的控制流劫持攻击,但仅在支持 CET(Control-flow Enforcement Technology)的第12代及以上 Intel Core 或 AMD Ryzen 6000+ 处理器上可用,且必须通过 Windows 安全中心底层开关激活。
确认硬件与系统支持状态
按下 Win + R,输入 msinfo32 并回车 → 在右侧信息中查找“虚拟化基于安全性”和“内存完整性”两项,二者均需显示【是】;若任一为“否”,则硬件虚拟化未开启或 BIOS 中 CET 未启用,后续步骤无效。
打开任务管理器(Ctrl+Shift+Esc)→ 切换到“性能”选项卡 → 点击左侧“CPU” → 查看右下角是否标注“已启用 CET 支持”。未显示即说明处理器不支持或 BIOS 中禁用了 CET。
通过 Windows 安全中心启用硬件强制栈保护
该方法直接调用系统安全策略接口,无需命令行或注册表,适用于所有 Windows 11 22H2 及更新版本(含家庭版),但要求已启用内存完整性作为前提。
按下 Win + I 打开设置 → 左侧点击“隐私和安全性” → 右侧点击“Windows 安全中心” → 点击“设备安全性”卡片 → 点击“内核隔离详细信息” → 向下滚动至“硬件强制实施的栈保护”区域 → 将开关切换为【开】。
系统会立即提示“需要重启才能应用更改”,此时点击“立即重新启动”;重启后该功能才真正加载进 VTL1 隔离环境。
使用 PowerShell 强制启用(管理员权限)
当图形界面中该开关灰显不可操作时,说明系统策略层存在冲突或组策略覆盖,此时需绕过 UI 直接写入内核安全配置。
以管理员身份运行 PowerShell → 执行命令:Set-ProcessMitigation -System -Enable HardwareDependentStackProtection。
执行后无任何提示即表示成功;若返回“拒绝访问”错误,请先检查是否已启用内存完整性,并确认当前用户具有本地管理员组成员身份。
执行完命令后仍需重启系统,否则变更不会注入 HVCI 运行时上下文。











