Windows XP Service Pack 2、Windows XP Tablet PC Edition 2005 以及 Windows Server 2003 中数据执行保护 (DEP) 功能的详细说明
文章编号 | : | 875352 |
最后修改 | : | 2006年7月20日 |
修订 | : | 13.0 |
概要
数据执行保护 (DEP) 是一套软硬件技术,能够在内存上执行额外检查以帮助防止在系统上运行恶意代码。在 Microsoft Windows XP Service Pack 2 (SP2) 和 Microsoft Windows XP Tablet PC Edition 2005 中,由硬件和软件一起强制实施 DEP。
DEP 的主要优点是可以帮助防止数据页执行代码。通常情况下,不从默认堆和堆栈执行代码。硬件实施 DEP 检测从这些位置运行的代码,并在发现执行情况时引发异常。软件实施 DEP 可帮助阻止恶意代码利用 Windows 中的异常处理机制进行破坏。
DEP 的主要优点是可以帮助防止数据页执行代码。通常情况下,不从默认堆和堆栈执行代码。硬件实施 DEP 检测从这些位置运行的代码,并在发现执行情况时引发异常。软件实施 DEP 可帮助阻止恶意代码利用 Windows 中的异常处理机制进行破坏。
简介
本文介绍 Windows XP SP2 以及 Microsoft Windows Server 2003 Service Pack 1 (SP1) 中的 DEP 功能,并讨论以下主题:
• | 硬件实施 DEP |
• | 软件实施 DEP |
• | 优点 |
• | DEP 的系统范围配置 |
• | 按程序进行 DEP 配置 |
更多信息
硬件实施 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) 功能。 |
注意:由于 64 位内核识别地址窗口化扩展插件 (AWE),因此在 Windows 的 64 位版本中没有单独的 PAE 内核。
有关 Windows Server 2003 中 PAE 和 AWE 的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
283037 (http://support.microsoft.com/kb/283037/) Windows Server 2003 和 Windows 2000 提供大内存支持
软件实施 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 保护的程序既不受硬件实施 DEP 的保护,也不受软件实施 DEP 的保护。
Boot.ini 文件设置如下所示:
/noexecute=policy_level
注意:policy_level 可定义为“总是启用”、“总是禁用”、“选择启用”或“选择禁用”。安装 Windows XP SP2 后,Boot.ini 文件中的现有 /noexecute 设置不会更改。在计算机上移动 Windows 操作系统映像后,无论计算机是否有硬件实施 DEP 支持,这些设置也都不会变化。
在安装 Windows XP SP2 和 Windows Server 2003 SP1 或更高版本的过程中,除非在无人参与安装中指定不同的策略级别,否则默认情况下启用“选择启用”策略级别。对于支持 DEP 的 Windows 版本,如果 Boot.ini 文件中不包括 /noexecute=policy_level 设置,其行为将与包括 /noexecute=OptIn 设置时的行为相同。
如果以管理员身份登录,则可使用“系统属性”中的“数据执行保护”选项卡,手动将 DEP 配置为在“选择启用”和“选择禁用”策略之间切换。以下过程说明如何在计算机上手动配置 DEP:
1. | 单击“开始”,单击“运行”,键入 sysdm.cpl,然后单击“确定”。 | ||||
2. | 在“高级”选项卡的“性能”下,单击“设置”。 | ||||
3. | 在“数据执行保护”选项卡上,执行下列过程之一:
| ||||
4. | 单击“确定”两次。 |
要使用 Boot.ini 文件配置 DEP 以切换到“总是启用”策略,请按照下列步骤操作:
1. | 单击“开始”,右键单击“我的电脑”,然后单击“属性”。 |
2. | 单击“高级”选项卡,然后单击“启动和故障恢复”字段下的“设置”。 |
3. | 在“系统启动”字段中,单击“编辑”。在记事本中打开 Boot.ini 文件。 |
4. | 在记事本中单击“编辑”菜单上的“查找”。 |
5. | 在“查找内容”框中键入 /noexecute,然后单击“查找下一个”。 |
6. | 在“查找”对话框中,单击“取消”。 |
7. | 用 AlwaysOn 替换 policy_level。 警告:请确保输入的文本正确无误。 现在,Boot.ini 文件开关应显示为: /noexecute=AlwaysOn |
8. | 在记事本中单击“文件”菜单上的“保存”。 |
9. | 单击“确定”两次。 |
10. | 重新启动计算机。 |
按程序进行 DEP 配置
为使程序能够兼容,如果 DEP 设置为“选择禁用”策略级别,则可以有选择地为单个 32 位程序禁用 DEP。具体方法是,使用“系统属性”中的“数据执行保护”选项卡,有选择地为程序禁用 DEP。对于 IT 专业人员,可以使用 Windows XP SP2 中包含的名为 DisableNX 的新程序兼容性修复程序。DisableNX 兼容性修复程序为其应用到的程序禁用数据执行保护。可使用应用程序兼容性工具包将 DisableNX 兼容性修复程序应用于程序中。有关 Windows 应用程序兼容性的更多信息,请参见以下 Microsoft 网站上的 Windows 应用程序兼容性:
http://www.microsoft.com/technet/prodtechnol/windows/appcompatibility/default.mspx (http://www.microsoft.com/technet/prodtechnol/windows/appcompatibility/default.mspx)
这篇文章中的信息适用于:
• | Microsoft Windows Server 2003 Service Pack 1 当用于 | |||||||||||||||
| ||||||||||||||||
• | Microsoft Windows XP Service Pack 2 | |||||||||||||||
• | Microsoft Windows XP Service Pack 2 | |||||||||||||||
• | Microsoft Windows XP Service Pack 2 | |||||||||||||||
• | Microsoft Windows XP Tablet PC Edition 2005 |
关键字: |
kbinfo kbtshoot KB875352 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现