数据执行保护技术(Data Execution Prevention,以下简称 DEP)是 WinXP SP2 和 2003 sp1 新增的一项功能。DEP 简单地说可以看作操作系统底层的安全防护机制,本身不具备对病毒检测的功能。但如果有利用漏洞溢出包括本地溢出的病毒发作时,DEP 可以进行防护作用。
在 WinXP SP2 和 2003 sp1 的系统上,在控制面板里打开“系统”属性,在【高级】选项卡下的“性能:视觉效果、处理器计划、内存使用和虚拟内存”里面点击【设置】,接着在“性能选项”中选择【数据执行保护】选项卡,即可设置 DEP 功能。
DEP 技术也需要硬件设备的支持,如果要完整地支持 DEP 必须拥有支持 DEP 技术的 CPU,目前只有 Intel 的“安腾”系列、Pentium 4 J 支持,以及 AMD 的 Athlon 64 系列、Opteron 支持。硬件不支持 DEP 的计算机使用 WinXP SP2 或 2003 sp1 只能用软件方式模拟 DEP 的部分功能。
数据执行保护(DEP)是MicrosoftWindowsXPServicePack2(SP2)支持的一种处理器功能,它禁止在标记为数据存储的内存区域中执行代码。此功能也称作“不执行”和“执行保护”。当尝试运行标记的数据页中的代码时,就会立即发生异常并禁止执行代码。这可以防止攻击者使用代码致使数据缓冲区溢出,然后执行该代码。
数据执行保护(DEP)有助于防止病毒和其他安全威胁造成破坏,它们的攻击方法是从只有Windows和其他程序可以使用的内存位置执行恶意代码。此类威胁使用以下方法造成破坏:它接管某个程序正在使用的一个或多个内存位置,然后进行传播并破坏其他程序、文件甚至您的电子邮件联系方式。
与防火墙或防病毒程序不同,DEP不能阻止在您的计算机上安装有害程序。但是,它会监视您的程序,以确定它们是否安全地使用系统内存。为此,DEP软件会单独或与兼容的微处理器一起将某些内存位置标记为“不可执行”。如果某个程序尝试从受保护的位置运行代码,DEP将关闭该程序并通知您。即使该代码不是恶意代码,也会执行此操作。
64位Windows版本上的DEP
64位处理器上的64位Windows版本可以在64位模式下运行程序。无论处理器的结构如何,64位Windows版本的内核模式DEP均适用于堆栈、页面缓冲池和会话池。
默认情况下,在WindowsXPSP2中启用DEP,并且无法将其禁用。64位应用程序将无法从堆栈或默认进程堆中运行。对于需要分配可执行内存的应用程序,可使用带有某个PAGE_EXECUTE*内存属性的VirtualAlloc()来运行。
32位Windows版本上的DEP
用户模式DEP
在不久的将来,许多运行Windows和Windows兼容程序的计算机都将使用运行32位Windows版本的32位处理器。但是,AMDOpteron和Athlon-64等新的处理器同
