windows XP数据执行保护 (DEP) 功能的详细说明2008-09-16 11:52概要
数据执行保护 (DEP) 是一套软硬件技术,能够在内存上执行额外检查以帮助防止在系统上运行恶意代码。在 Microsoft Windows XP Service Pack 2 (SP2) 和 Microsoft Windows XP Tablet PC Edition 2005 中,由硬件和软件一起强制实施 DEP。
DEP 的主要优点是可以帮助防止数据页执行代码。通常情况下,不从默认堆和堆栈执行代码。硬件实施 DEP 检测从这些位置运行的代码,并在发现执行情况时引发异常。软件实施 DEP 可帮助阻止恶意代码利用 Windows 中的异常处理机制进行破坏。
硬件实施 DEP
除了显式包含可执行代码的内存位置外,硬件实施 DEP 将进程中的所有内存位置均标记为不可执行。有一类攻击是尝试在不可执行的内存位置插入代码并运行它。DEP 可通过截获这些攻击并引发一个异常来帮助阻止这些攻击。
硬件实施 DEP 依靠处理器硬件来使用属性标记内存,此属性指明不能从该内存执行代码。DEP 以虚拟内存页面为单位运行,通常情况下更改 Page Table Entry (PTE) 中的位来标记内存页面。
处理器体系结构确定 DEP 在硬件中的实现方式以及 DEP 标记虚拟内存页面的方式。但是,在从使用合适
属性集标记的页面执行代码时,支持硬件实施 DEP 的处理器可能引发异常。
Advanced Micro Devices (AMD) 和 Intel 已经定义并发布了与 Windows 兼容的体系结构,该体系结构与 DEP 兼容。
从 Windows XP SP2 开始,Windows 的 32 位版本使用下列功能之一: ? 由 AMD 定义的 No-Execute Page-Protection (NX) 处理器功能。 ? 由 Intel 定义的 Execute Disable Bit (XD) 功能。要使用这些处理器功能,处理器必须以物理地址扩展 (PAE) 模式运行。但是,Windows 将自动启用 PAE 模式来支持 DEP。用户不必使用 /PAE 启动开关来单独启用 PAE。
注意:由于 64 位内核识别地址窗口化扩展插件 (AWE),因此在 Windows 的 64 位版本中没有单独的 PAE 内核。
有关 Windows Server 2003 中 PAE 和 AWE 的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
软件实施 DEP
Windows XP SP2 中已添加另一套数据执行保护安全检查。这些称为软件实施 DEP 的检查旨在阻止利用 Windows 中异常处理机制的恶意代码。软件实施 DEP 运行在可以运行 Windows XP SP2 的任意处
理器上。默认情况下,不管处理器的硬件实施 DEP 功能如何,软件实施 DEP 都是只帮助保护受限的系统二进制文件。
优点
DEP 的主要优点是帮助阻止数据页(如默认的堆页、各种堆栈页以及内存池页)执行代码。通常情况下,不从默认堆和堆栈执行代码。硬件实施 DEP 检测从这些位置运行的代码,并在发现执行情况时引
发异常。如果异常未得到处理,进程将停止。在内核模式下从受保护的内存执行代码会导致“停止”错误。
DEP 可帮助阻止某类安全入侵。具体而言就是,DEP 可帮助阻止某种恶意程序,在这种恶意程序中,病毒或其他类型的攻击会在进程中插入一段附加代码,并试图运行此插入代码。在带有 DEP 的系统上,执行插入代码会导致发生异常。软件实施 DEP 可帮助阻止利用 Windows 中异常处理机制的程序。
DEP 的系统范围配置
系统的 DEP 配置由 Boot.ini 文件中的开关控制。如果以管理员身份登录,则可立即使用“控制面板”中的“系统”对话框轻松配置 DEP 设置。
对于硬件实施和软件实施 DEP,Windows 支持四种系统范围配置。
配置 说明 选择启用 此设置为默认配置。如果系统中具有能够实现硬件实施 DEP 功能的处理器,则默认情况下将对限定的系统二进制文件和“选择启用”程序启用 DEP。使用此选项时,默认情况下,DEP 仅覆盖 Windows 系统二进制文件。 选择禁用 默认情况下,对所有进程启用 DEP。可以使用“控制面板”中的“系统”对话框手动创建未应用 DEP 的特定程序的列表。信息技术 (IT) 专业人员可以使用应用程序兼容性工具包“选择禁用”DEP 保护的一个或多个程序。用于 DEP 的系统兼容性修复程序和填充程序确实可以发挥作用。 总是启用 此设置将整个系统置于 DEP保护范围内。所有进程始终在应用 DEP 的情况下运行。使特定程序不受 DEP 保护的例外列表不可用。用于 DEP 的系统兼容性修复程序不起作用。使用应用程序兼容性工具包选择禁用的程序将在应用 DEP 的情况下运行。 总是禁用 无论硬件 DEP 是否支持,此设置都不会为系统的任何部分提供 DEP 保护。除非在 Boot.ini 文件中包括“/PAE”选项,否则处理器不会在 PAE 模式下运行。配置硬件实施和软件实施 DEP 的方式相同。如果系统范围的 DEP 策略设置为“选择启用”,则同一 Windows 核心二进制文件和程序既受硬件实施 DEP 的保护,也受软件实施 DEP 的保护。如果系统无法使用硬件实施 DEP,则 Windows 核心二进制文件和程序将只受软件实施 DEP 的保护。
同样,如果系统范围的 DEP 策略设置为“选择禁用”,则不受 DEP 保护的程序既不受硬件实施 DEP 的保护,也不受软件实施 DEP 的保护。
Boot.ini 文件设置如下所示: /noexecute=policy_level注意:policy_level 可定义为“总是启用”、“总是禁
用”、“选择启用”或“选择禁用”。
安装 Windows XP SP2 后,Boot.ini 文件中的现有 /noexecute 设置不会更改。在计算机上移动 Windows 操作系统映像后,无论计算机是否有硬件实施 DEP 支持,这些设置也都不会变化。
在安装 Windows XP SP2 或更高版本的过程中,除非在无人参与安装中指定不同的策略级别,否则默认情况下启用“选择启用”策略级别。对于支持 DEP 的 Windows 版本,如果 Boot.ini 文件中不包括 /noexecute=policy_level 设置,其行为将与包括 /noexecute=OptIn 设置时的行为相同。
如果以管理员身份登录,则可使用“系统属性”中的“数据执行保护”选项卡,手动将 DEP 配置为在“选择启用”和“选择禁用”策略之间切换。
以下过程说明如何在计算机上手动配置 DEP: 1. 单击“开始”,单击“运行”,键入 sysdm.cpl,然后单击“确定”。
2. 在“高级”选项卡的“性能”下,单击“设置”。
3. 在“数据执行保护”选项卡上,执行下列过程之一: ? 单击“只为关键 Windows 程序和服务启用数据执行保护”以选择“选择启用”策略。 ? 单击“除所选之外,为所有程序和服务启用数据执行保护”以选择“选择禁用”策略,然后单击“添加”以添加不希望使用 DEP 功能的程序。
4. 单击“确定”两次。IT 专业人员可以使用各种方法来控制系统范围的 DEP 配置。可以使用脚本机制或 Windows XP SP2 中包含的 工具直接修改 Boot.ini 文件。
要使用 Boot.ini 文件配置 DEP 以切换到“总是启用”策略,请按照下列步骤操作:
1. 单击“开始”,右键单击“我的电脑”,然后单击“属性”。
2. 单击“高级”选项卡,然后单击“启动和故障恢复”字段下的“设置”。
3. 在“系统启动”字段中,单击“编辑”。在记事本中打开 Boot.ini 文件。
4. 在记事本中单击“编辑”菜单上的“查”。
5. 在“查内容”框中键入 /noexecute,然后单击“查下一个”。
6. 在“查”对话框中,单击“取消”。
7. 用 AlwaysOn 替换 policy_level。--->NoExecute=AlwaysOff相当于关闭EVP和DEP功能
警告:请确保输入的文本正确无误。 现在,Boot.ini 文件开关应显示为: /noexecute=AlwaysOn
8. 在记事本中单击“文件”菜单上的“保存”。
9. 单击“确定”两次。
10. 重新启动计算机。对于 Windows XP SP2 或更高版本的无人参与安装,可以使用 文件预先装入特定的 DEP 配置。可以使用 文件 [Data] 部分的 OSLoadOptionsVar 项指定系统范围的 DEP 配置。
按程序进行 DEP 配置
为使程序能够兼容,如果 DEP 设置为“选择禁用”策略级别,则可以有选择地为单个 32 位程序禁用 DEP。具体方法是,使用“系统属性”中的“数据执行保护”选项卡,有选择地为程序禁用 DEP。
对于 IT 专业人员,可以使用 Windows XP SP2 中包含的名为 DisableNX 的新程序兼容性修复程序。DisableNX 兼容性修复程序为其应用到
的程序禁用数据执行保护。
可使用应用程序兼容性工具包将 DisableNX 兼容性修复程序应用于程序中。有关 Windows 应用程序兼容性的更多信息,请参见以下 Microsoft网站上的 Windows 应用程序兼容性: www.microsoft/technet/prodtechnol/Windows/appcompatibility/default.mspx
//////////////////////////////////////////////////////////////////
tablet驱动程序出现这种情况,建议你首先使用杀毒软件查一下自己的机子上是否有病毒。如果没有病毒,你又确实想关闭数据执行保护,可以试试以下方法:
1、在系统属性中修改(这种方法并不是完全关闭数据执行保护)
在“我的电脑”单击右键,选择“属性→高级→(性能)设置→数据执行保护”,选择“为除下列选定程序之外的所有程序和服务启用DEP”,再单击“添加”,定位到某应用程序的安装目录,到该程序的可执行文件,将其添加进来。一般地,这个程序就能正常运行了。重启电脑后设置生效。
2、直接修改Boot.ini文件(这将彻底关闭数据执行保护)
在WinXP SP2系统所在分区根目录下到Boot.ini文件。注意看,它多出了一个“NoExecute”参数,而前面在系统属性中对DEP的修改也会反映在这个参数上。
在“数据执行保护”项中只有两个选项,反映在Boot.ini文件中就是“NoExecute”参数的“Optin”和“Opton”两个值。可是,有些应用程序或驱动程序的兼容性不强,纵使在“数据执行保护”中将其“放行”,它还是不能正常运行,比如:3721的上网助手、ZoneAlarm Pro等,这就要靠“NoExecute”参数的其他两个值了。
NoExecute=AlwaysOff相当于关闭EVP和DEP功能,此时,这两项功能将全部丧失。由这项功能引起的兼容性问题即全部解决,但少了一堵安全保护的墙
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论