简介
Microsoft Windows XP Service Pack 2 (SP2) 借着实作一套硬件及软件执行技术:数据执行防止 (DEP),协助保护您的计算机,防止恶意程序代码插入要保留给非执行程序代码的计算机内存区域内。由硬件执行的 DEP 是某些处理器的功能,能防止在标示为数据储存的内存区域内执行程序代码。此功能也称为「不执行与执行保护」(No-Execute and Execution Protection)。Windows XP SP2 也采用软件执行的 DEP,用以减少 Windows 内例外处理机制的弱点。
硬件及软件执行的 DEP 技术与防毒程序不同,并非用来防止有害程序安装到计算机中, 而是监视已安装的程序,协助判断它们是否安全使用系统内存。为了监视程序,硬件执行的 DEP 会追踪宣告为「非执行」的内存位置。为了协助防止恶意程序代码,若内存宣告为「非执行」,而程序尝试从内存执行程序代码,Windows 将关闭该程序。无论程序代码是否为恶意,都会如此处理。
注意:以软件为基础的 DEP 是 Windows XP SP2 的一部分,预设为启用,而与处理器的硬件执行 DEP 功能无关。根据预设,软件执行的 DEP 适用于核心操作系统组件与服务。
DEP 的预设设定是以应用程序兼容性遭受最小影响的前提下,保护您的计算机。但是您的 DEP 设定可能会造成某些程序无法正确执行。您可以使用本文件所述的工作,设定计算机上的 DEP:
• | 对计算机上的所有程序启用 DEP |
• | 在 DEP 例外清单中新增程序 |
• | 对整部计算机停用 DEP 重要:本文中所有说明步骤,都会从安装操作系统时预设会出现的 [开始] 菜单开始操作。若您已经修改过 [开始] 菜单,整个步骤可能稍有不同。 |
如需安全性相关名词的定义,请参阅下列信息:
• | Microsoft 网站上的<Microsoft 信息安全词汇>(英文),网址是:http://go.microsoft.com/fwlink/?LinkId=35468 |
如需 DEP 的更多信息,请参阅:
• | Microsoft 技术支持服务网站上的 Microsoft 知识库文件编号 875352,网址是:http://go.microsoft.com/fwlink/?linkid=35494 |
本文件提供在 Windows XP SP2 上设定 DEP 的指南。
注意:采用 DEP 兼容处理器、并执行 Microsoft Windows XP 64-Bit Edition 的计算机,预设会启用由硬件执行的 DEP。64 位应用程序将不会从内存的「非执行」区域中执行。无法停用硬件执行的 DEP。
在 Windows XP SP2 上,以及在任何处理器上执行的 32 位应用程序上的软件执行 DEP,可设定为使用内存的「可执行」或「非执行」区域。
硬件及软件 DEP 的预设设定能保护核心 Windows 组件与服务,而且对于应用程序兼容性的影响最小,但是您也能设定 DEP 保护计算机上的所有应用程序与程序。若您设定 DEP 保护计算机上的所有应用程序与程序,会获得额外保护的优点,但是也可能发生其它应用程序兼容性的问题。若您设定 DEP 保护计算机上的所有应用程序与程序,而 32 位应用程序发生兼容性问题,您可以从软件 DEP 保护中去除个别的 32 位应用程序。在具有 DEP 兼容处理器的 64 位 Windows XP 系统上执行的硬件 DEP 或 64 位应用程序,您无法加以停用或去除。
执行此工作的需求
• | 凭证:您必须使用具有本机系统管理员权限的账户登入计算机。 |
设定 DEP 保护所有应用程序
对所有应用程序启用 DEP
1. | 按一下 [开始],再按 [控制台]。 |
2. | 在 [选取类别目录] 下,按一下 [效能及维护]。 |
3. | 在 [或选取 [控制台] 图示] 之下,按一下 [系统]。 |
4. | 按一下 [进阶] 索引卷标。
图 1 [系统内容] - [进阶] 索引卷标
|
5. | 在 [效能] 区域中,按一下 [设定]。
图 2 效能选项
|
6. | 按一下 [数据执行防止] 索引卷标。
图 3 [数据执行防止] 索引卷标
|
7. | 选取 [为所有的 Windows 程序和服务开启 DEP,除了我选择的这些:]。 |
8. | 按一下 [套用],再按 [确定]。对话框出现,告知您必须重新启动计算机,设定才能生效。按一下 [确定]。 |
确认所有程序的 DEP 设定都已套用
确认所有程序的 DEP 设定都已套用
1. | 按一下 [开始],再按 [控制台]。 |
2. | 在 [选取类别目录] 下,按一下 [效能及维护]。 |
3. | 在 [或选取 [控制台] 图示] 之下,按一下 [系统]。 |
4. | 按一下 [进阶] 索引卷标。 |
5. | 在 [效能] 区域中,按一下 [设定],然后按一下 [数据执行防止]。 |
6. | 确认选取 [为所有的 Windows 程序和服务开启 DEP,除了我选择的这些:],然后按一下 [确定] 以关闭 [效能设定]。 |
7. | 按一下 [确定] 以关闭 [系统内容],然后关闭 [效能及维护]。 |
若 DEP 使应用程序发生问题,系统会显示对话框通知您。
图 4 当应用程序尝试执行而发生 DEP 问题时,会出现的对话框
若 DEP 造成应用程序失败,Microsoft 强烈建议您联系应用程序供货商,查询是否有 DEP 兼容的更新。安装这种更新,是解决应用程序的 DEP 兼容问题较合适的解决方案。
若应用程序没有更新,请按照下列步骤,存取并设定例外清单。例外清单就是从 DEP 中排除的应用程序清单。
注意:只有在 DEP 设定设为保护所有程序与服务时,才能使用 DEP 例外清单功能。若您设定计算机只保护基本的 Windows 组件和服务,就无法使用例外清单。
执行此工作的需求
• | 凭证:您必须使用具有本机系统管理员权限的账户登入计算机。 |
启用 DEP 例外清单
启用 DEP 例外清单
1. | 按一下 [开始],再按 [控制台]。 |
2. | 在 [选取类别目录] 下,按一下 [效能及维护]。 |
3. | 在 [或选取 [控制台] 图示] 之下,按一下 [系统]。 |
4. | 按一下 [进阶] 索引卷标。
图 5 [系统内容] - [进阶] 索引卷标 |
5. | 在 [效能] 区域中,按一下 [设定]。
图 6 效能选项 |
6. | 按一下 [数据执行防止] 索引卷标。
图 7 [数据执行防止] 索引卷标 |
7. | 按一下 [新增]。 |
8. | 寻找并选取失败的应用程序可执行文件,然后按一下 [开启]。 |
9. | 在警告方块中,按一下 [确定]。选取的程序现在就会出现在 DEP 程序区域内。 |
10. | 按一下 [套用],再按 [确定]。对话框出现,告知您必须重新启动计算机,设定才能生效。按一下 [确定]。 |
确认 DEP 例外清单设定已经套用
确认内存保护设定已经套用
1. | 按一下 [开始],再按 [控制台]。 |
2. | 在 [选取类别目录] 下,按一下 [效能及维护]。 |
3. | 在 [或选取 [控制台] 图示] 之下,按一下 [系统]。 |
4. | 按一下 [进阶] 索引卷标。 |
5. | 在 [效能] 区域中,按一下 [设定],然后按一下 [数据执行防止]。 |
6. | 确认例外清单包含所要的程序,然后按一下 [确定] 以关闭 [效能设定]。 |
7. | 按一下 [确定] 以关闭 [系统内容],然后关闭 [效能及维护]。 |
若要为您的计算机进行整个系统的 DEP 变更,您必须为目前执行的 Windows 安装修改 boot.ini 设定档案的一个参数。boot.ini 的参数是:
• | /noexecute =原则层级 |
表 1 列出原则层级的选项。
表 1 DEP boot.ini 原则层级选项
原则层级 | 描述 |
OptIn (预设设定) | 只有 Windows 系统组件和服务已经套用 DEP 保护 |
OptOut | 对所有处理程序启用 DEP。系统管理员可以手动建立没有套用 DEP 的特定应用程序清单 |
AlwaysOn | 对所有处理程序启用 DEP |
AlwaysOff | 没有对任何处理程序启用 DEP |
重要:在 boot.ini 档案内进行任何变更之后,您必须重新启动计算机。
警告:Microsoft 建议您不要全面停用软件执行的 DEP, 否则计算机的安全性会降低。硬件执行的 DEP 无法手动停用。
执行此工作的需求
• | 凭证:您必须使用具有本机系统管理员权限的账户登入计算机。 |
使用 boot.ini 停用整个系统的 DEP
使用 boot.ini 停用 DEP
1. | 按一下 [开始],再按 [控制台]。 |
2. | 在 [选取类别目录] 下,按一下 [效能及维护]。 |
3. | 在 [或选取 [控制台] 图示] 之下,按一下 [系统]。 |
4. | 按一下 [进阶] 索引卷标,然后在 [启动及修复] 区域内,按一下 [设定]。
图 8 [启动及修复] 设定 |
5. | 在 [系统 启动] 区域内,按一下 [编辑]。
图 9 [记事本] 内的 Boot.ini 档案 |
6. | 在 [记事本] 内,按一下 [编辑],再按一下 [寻找]。 |
7. | 在 [寻找目标] 字段内,键入 /noexecute,然后按一下 [找下一个]。 |
8. | 在 [寻找] 对话框中,按一下 [取消]。 |
9. | 以 AlwaysOff 取代原则层级 (例如 OptOut)。 警告:请务必小心输入文字。 注意:boot.ini 档案的参数应为: /noexecute=AlwaysOff |
10. | 在 [记事本] 内,按一下 [档案],再按一下 [储存档案]。 |
11. | 按一下 [确定] 以关闭 [启动及修复]。 |
12. | 按一下 [确定] 以关闭 [系统内容],然后重新启动计算机。 |
确认 DEP 已经停用
确认内存保护设定已经套用
1. | 按一下 [开始],再按 [控制台]。 |
2. | 在 [选取类别目录] 下,按一下 [效能及维护]。 |
3. | 在 [或选取 [控制台] 图示] 之下,按一下 [系统]。 |
4. | 按一下 [进阶] 索引卷标。 |
5. | 在 [效能] 区域中,按一下 [设定],然后按一下 [数据执行防止]。 |
6. | 确认无法使用 DEP 设定,然后按一下 [确定] 以关闭 [效能设定]。 |
7. | 按一下 [确定] 以关闭 [系统内容],然后关闭 [效能及维护]。 |