如何确定计算机上硬件 DEP 可用和配置

本文介绍如何确定硬件 DEP 在你的计算机上可用和配置。

适用于:Windows Server 2012 R2、Windows 10 - 所有版本
原始 KB 编号: 912923

简介

数据执行防护 (DEP) 是一组硬件和软件技术,可对内存执行额外的检查,以帮助防范恶意代码攻击。

硬件强制 DEP 将进程中的所有内存位置标记为不可执行,除非该位置显式包含可执行代码。 一种恶意代码攻击尝试从非可执行内存位置插入和运行代码。 DEP 通过拦截这些攻击并引发异常来帮助防止这些攻击。

本文介绍使用硬件强制执行的 DEP 的要求。 本文还介绍如何确认硬件 DEP 在 Windows 中正常工作。

更多信息

使用硬件强制执行的 DEP 的要求

若要使用硬件强制执行的 DEP,必须满足以下所有条件:

  1. 计算机的处理器必须支持硬件强制执行的 DEP。

    许多最近的处理器都支持硬件强制执行的 DEP。 (AMD) 和 Intel Corporation 的 Advanced Micro Devices 都定义并交付了与 DEP 兼容的 Windows 兼容体系结构。 此处理器支持可称为 NX (no-execute) 或 XD (execute disable) 技术。 若要确定计算机的处理器是否支持硬件强制执行的 DEP,请联系计算机的制造商。

  2. 必须在 BIOS 中启用硬件强制执行的 DEP。

    在某些计算机上,可以在 BIOS 中禁用对硬件强制执行的 DEP 的处理器支持。 无法禁用此支持。 根据计算机制造商的不同,禁用此支持的选项可能标记为“数据执行防护”、“XD”、“执行禁用”或“NX”。

  3. 计算机必须安装装有 Service Pack 2 的 Windows XP 或安装了 Service Pack 1 的 Windows Server 2003。

    注意

    32 位版本和 64 位版本的 Windows 都支持硬件强制执行的 DEP。 Windows XP Media Center Edition 2005 和 Microsoft Windows XP Tablet PC Edition 2005 包括 Windows XP SP2 的所有功能和组件。

  4. 必须为计算机上的程序启用硬件强制执行的 DEP。

    在 64 位版本的 Windows 中,始终为 64 位本机程序启用硬件强制执行的 DEP。 但是,根据配置,可能会对 32 位程序禁用硬件强制执行的 DEP。

有关如何使用 Service Pack 2 在 Windows XP 中配置内存保护的信息,请访问以下 Microsoft 网站:
https://technet.microsoft.com/library/cc700810.aspx

如何确认硬件 DEP 在 Windows 中正常工作

若要确认硬件 DEP 在 Windows 中正常工作,请使用以下方法之一。

方法 1:使用 Wmic 命令行工具

可以使用 Wmic 命令行工具检查 DEP 设置。 若要确定硬件强制 DEP 是否可用,请执行以下步骤:

  1. 单击 “开始”,单击“ 运行”,在“ 打开 ”框中键入 cmd,然后单击“ 确定”。

  2. 在命令提示符下,键入以下命令,然后按 Enter:

    wmic OS Get DataExecutionPrevention_Available  
    

如果输出为“TRUE”,则硬件强制执行的 DEP 可用。

若要确定当前的 DEP 支持策略,请执行以下步骤。

  1. 单击 “开始”,单击“ 运行”,在“ 打开 ”框中键入 cmd,然后单击“ 确定”。

  2. 在命令提示符下,键入以下命令,然后按 Enter:

    wmic OS Get DataExecutionPrevention_SupportPolicy  
    

    返回的值为 0、1、2 或 3。 此值对应于下表中所述的 DEP 支持策略之一。

    DataExecutionPrevention_SupportPolicy属性值 策略级别 说明
    2 OptIn (默认配置) 只有 Windows 系统组件和服务应用了 DEP
    3 OptOut 为所有进程启用 DEP。 管理员可以手动创建未应用 DEP 的特定应用程序的列表
    1 AlwaysOn 为所有进程启用 DEP
    0 AlwaysOff 未对任何进程启用 DEP

    注意

    若要验证 Windows 是否在启用了硬件 DEP 的情况下运行,请检查 Win32_OperatingSystem 类的 DataExecutionPrevention_Drivers 属性。 在某些系统配置中,可以使用 Boot.ini 文件中的 /nopae 或 /execute 开关禁用硬件 DEP。 若要检查此属性,请在命令提示符下键入以下命令:
    wmic OS 获取DataExecutionPrevention_Drivers

方法 2:使用图形用户界面

若要使用图形用户界面来确定 DEP 是否可用,请执行以下步骤:

  1. 单击 “开始”,单击“ 运行”, wbemtest 键入“ 打开 ”框,然后单击“ 确定”。
  2. “Windows Management Instrumentation Tester ”对话框中,单击“ 连接”。
  3. 在“ 连接 ”对话框顶部的框中,键入 root\cimv2,然后单击“ 连接”。
  4. 单击“ 枚举实例”。
  5. 在“ 类信息 ”对话框中,在“ 输入超类名称 ”框中键入Win32_OperatingSystem,然后单击“ 确定”。
  6. 在“ 查询结果 ”对话框中,双击顶部项。

    注意

    此项以“Win32_OperatingSystem.Name=Microsoft...”开头

  7. “对象编辑器 ”对话框中,在“属性”区域中找到DataExecutionPrevention_Available 属性
  8. 双击 “DataExecutionPrevention_Available”。
  9. 在“属性编辑器”对话框中,记下“”框中的值。
    如果值为 TRUE,则硬件 DEP 可用。

注意

  • 若要确定运行 DEP 的模式,请检查 Win32_OperatingSystem 类的 DataExecutionPrevention_SupportPolicy 属性。 方法 1 末尾的表描述了每个支持策略值。

  • 若要验证是否在 Windows 中启用了硬件 DEP,请检查 Win32_OperatingSystem 类的 DataExecutionPrevention_Drivers 属性。 在某些系统配置中,可以使用 Boot.ini 文件中的 /nopae 或 /execute 开关禁用硬件 DEP。

本文中提到的第三方产品由 Microsoft 以外的其他公司提供。 对于这些产品的性能或可靠性,Microsoft 不作任何暗示保证或其他形式的保证。