Windows Vista 中设置或关闭数据执行保护(DEP)

2009-03-07 15:07:24 旧日重来

Windows 从 XP SP2 版本开始,支持“数据执行保护”(Data Execution Prevention, DEP)功能。DEP 是一套软硬件技术,能够在内存上执行额外检查以帮助防止在系统上运行恶意代码。当启用 DEP 时,系统可以在一定程度上检查并阻止一些恶意代码的运行,但是 DEP 也有一些缺点:首先,只有在硬件支持的情况下(包括 AMD 的 No-Execute Page-Protection (NX) 处理器功能和 Intel 的 Execute Disable Bit (XD) 功能,只在比较新的 CPU 上具有)才有比较高的运行效率,否则只能以软件方式模拟,运行效率较低;第二,有些程序可能会和 DEP 冲突,在这些程序进一步改进之前,只能暂时在它们上面禁用 DEP。所以有必要针对自己的情况合理的设置 DEP。

Windows Vista 的 DEP 设置总共包含 4 种状态:OptIn(选择启用,默认值),OptOut(选择禁用),AlwaysOn(总是启用)和 AlwaysOff(总是禁用)。前两项设置可以在系统提供的 DEP 设置对话框中选择,而想完全启用或完全关闭 DEP,则只能通过命令行来执行。这跟 Windows XP 里通过 boot.ini 的设置方式有较大区别。值得注意的是,当 DEP 启用时,系统的 PAE(Physical Address Extension 物理地址扩展)将会自动启用(除非设置了强行关闭 PAE)。参见这里的关于 PAE 的详细讨论

右键点击桌面的 电脑\属性,点击窗口左侧的“高级系统设置”,在弹出的系统属性对话框中,“高级”栏点击第一个“设置”按钮,再点击“数据执行保护”栏,就打开了数据执行保护设置框:

数据执行保护 OptIn

可以看到,系统的默认设置是 OptIn 模式,在该设置下,仅为基本 Windows 程序和服务器用 DEP。同时,可以注意到该对话框底部显示了计算机硬件对于 DEP 的支持情况(图中红框所示)。

如果在该对话框中选择,“为除下列程序之外的所有程序和服务启用”,则会将 DEP 设置为 OptOut 模式,在该模式下,DEP 提供了更广的保护范围。但同时也意味着增加了不兼容性的可能,因此,系统在提供了一个白名单列表,可以把产生冲突的程序(一般为系统级的程序、驱动等)添加到列表中,为这些程序关闭 DEP。

如果想完全关闭 DEP 的话,在 DEP 设置对话框里就无能为力了,必须通过 bcdedit 命令才行。bcdedit 是 Windows Vista 中为了避免像 XP 那样直接修改 boot.ini 容易出错的情况而做出的改进,但是这样一来又使得操作起来更麻烦些。想完全禁止 Vista 的 DEP,需要以管理员方式打开命令行提示符(方法1:点击 开始\附件,用右键点击“命令提示符”并选择“以管理员身份运行”;方法2:点击 开始,在下面的搜索框中输入“cmd”,再按下 Ctrl+Shift+Enter),并在命令提示符中输入下面的命令:

bcdedit /set nx AlwaysOff

设置成功后重启计算机,就可以完全关闭 DEP。如果把命令中的“AlwaysOn”参数改成“AlwaysOff”,则可以完全打开 DEP 并不允许例外。而如果最后一个参数是“OptIn”或“OptOut”,则等同于在之前的 DEP 设置对话框中选择相应的选项。最后,需要注意的是,用 bcdedit 将 DEP 完全打开或完全关闭后,DEP 设置对话框会被禁(如下图所示),此时只能再次通过 bcdedit 命令来对 DEP 重新设置。

DEP 对话框被禁用

查看:原文地址;来源:live.aulddays.com


注意:本站所有文章除特别说明外均为原创,版权所有,转载请务必以超链接方式注明作者出处,并禁止用作商业用途