数据执行保护 (DEP) 是一套硬件和软件技术,可对内存执行额外检查,以防被恶意代码利用。

除了显式包含可执行代码的内存位置外,硬件实施 DEP 会将进程中的所有内存位置全部标记为不可执行。有一种恶意代码攻击尝试从不可执行的内存位置插入代码并加以运行。DEP 可截获这些攻击并引发异常,以此来帮助阻止此类攻击。

本文介绍硬件实施 DEP 的使用要求,并说明如何确认 Windows 中的硬件 DEP 是否可用。

硬件实施 DEP 的使用要求

<script type="text/javascript"></script> 要使用硬件实施 DEP,必须符合下列所有条件:

1.      计算机的处理器必须支持硬件实施 DEP。

新生产的很多处理器都支持硬件实施 DEP。Advanced Micro Devices (AMD) 和 Intel Corporation 已定义并提供同时与 Windows 和 DEP 都兼容的体系结构。这种处理器支持可称为 NX(禁止执行)或 XD(执行禁用)技术。要确定计算机的处理器是否支持硬件实施 DEP,请与计算机的制造商联系。

2.      必须在 BIOS 中启用硬件实施 DEP。

在某些计算机的 BIOS 中,可以禁用针对硬件实施 DEP 的处理器支持。您不得禁用此支持。用于禁用此支持的选项可能标记为“数据执行保护”、“XD”、“执行禁用”或“NX”,具体则取决于计算机的制造商。

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

注意:Windows 的 32 位版本和 64 位版本都支持硬件实施 DEP。Windows XP Media Center Edition 2005 和 Microsoft Windows XP Tablet PC Edition 2005 包括 Windows XP SP2 的所有功能和组件。

4.      必须为计算机上的程序启用硬件实施 DEP。

在 Windows 的 64 位版本中,始终为 64 位的本机程序启用硬件实施 DEP。但是,32 位的程序可能已被禁用硬件实施 DEP,具体则取决于您的配置。

有关 DEP 和 DEP 配置的更多信息以及支持硬件 DEP 的 Windows 操作系统的列表,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

有关如何在 Windows XP Service Pack 2 中配置内存保护的信息,请访问下面的 Microsoft 网站:

http://www.microsoft.com/china/technet/security/prodtech/windowsxp/depcnfxp.mspx (http://www.microsoft.com/china/technet/security/prodtech/windowsxp/depcnfxp.mspx)

回到顶端

如何确认 Windows 中的硬件 DEP 是否可用

<script type="text/javascript"></script> 要确认 Windows 中的硬件 DEP 是否可用,请使用下列方法之一。

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

<script type="text/javascript"></script> 您可以使用 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 Get DataExecutionPrevention_Drivers

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

<script type="text/javascript"></script> 要使用图形用户界面确定 DEP 是否可用,请按照下列步骤操作:

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

2.      在“Windows 管理规范测试器”对话框中,单击“连接”。

3.      在“连接”对话框顶部的框中,键入 root/cimv2,然后单击“连接”。

4.      单击“枚举范例”。

5.      在“类别信息”对话框中的“输入超类别名称”框中,键入 Win32_OperatingSystem,然后单击“确定”。

6.      在“查询结果”对话框中,双击第一项。

注意:此项以“Win32_OperatingSystem.Name=Microsoft...”开头。

7.      在“对象编辑器”对话框中的“属性”区域中,找到“DataExecutionPrevention_Available”属性。

8.      双击“DataExecutionPrevention_Available”。

9.      在“属性编辑器”对话框中,记下“数值”框内的值。

如果该值为“TRUE”,则说明硬件 DEP 可用。

说明

·  <script type="text/javascript"></script> 要确定 DEP 的运行模式,请检查 Win32_OperatingSystem 类的 DataExecutionPrevention_SupportPolicy 属性。“方法 1”结尾处的表格描述了各个支持策略值。

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

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