什么是 DEP?如何知道我的处理器是否支持它?

什么是 DEP?如何知道我的处理器是否支持它?

Coreinfo 向我展示了一堆说明我的处理器支持。但我感兴趣的是DEP 数据执行保护.DEP已列出Windows 2016 Server 中 CPU 必须支持的功能。 它是什么?

来自的文档微软似乎将其与NXDEP和之间有什么区别?NX我如何知道我的处理器是否支持DEP

答案1

数据执行保护 (DEP) 是一种系统级内存保护功能,从 Windows XP 和 Windows Server 2003 开始​​内置于操作系统中。DEP 使系统能够将一个或多个内存页面标记为不可执行。将内存区域标记为不可执行意味着无法从该内存区域运行代码,这使得利用缓冲区溢出变得更加困难。

如果我们将其与您自己的链接中的信息相结合,我们确定当与 ASLR(需要 NX 位)结合时,DEP 就成为 NX 的同义词。具体来说,Windows Server 2016 中的 ASLR 实现需要它。

但当它与其他技术(如地址空间布局随机化 (ASLR))结合使用时,它有助于防止 Windows Internet Explorer 及其加载的附加组件中常见的缓冲区溢出漏洞。无需额外的用户交互即可提供此保护,也不会引入新的提示。

此外:

Microsoft 在 Windows Vista 和 Windows Server 2008 中增加了 ASLR 功能。在此平台上,DEP 是通过在 32 位 Windows 中自动使用 PAE 内核并在 64 位内核上提供本机支持来实现的。Windows Vista DEP 的工作原理是将内存的某些部分标记为仅用于保存数据,然后启用 NX 或 XD 位的处理器会将其理解为不可执行。

资料来源:

答案2

有基于硬件的 DEP 和基于软件的 DEP。 参考

基于硬件的 DEP 要求您的 CPU 支持 XD 或 NX 位。如果 CPU 尝试从设置了该位的页面执行代码,则 CPU 将引发硬件异常,并且不会执行任何代码。

基于软件的 DEP - 该参考提供了以下信息:

Windows XP SP2 中增加了一组额外的数据执行保护安全检查。这些检查称为软件强制 DEP,旨在阻止利用 Windows 中的异常处理机制的恶意代码。

软件强制 DEP 可在任何可运行 Windows XP SP2 的处理器上运行。默认情况下,软件强制 DEP 仅帮助保护有限的系统二进制文件,而不管处理器的硬件强制 DEP 功能如何。

无论 CPU 是否支持 NX/XD,都可以启用和使用此功能。

不确定软件 DEP 如何工作,但它可能类似于某些系统二进制文件使用的堆栈金丝雀 -参考

DEP 被列为 Windows 2016 Server 中 CPU 必须支持的功能。

Windows 2016 无法在没有硬件 NX/XD 支持的 CPU 上运行。自 2000 年以来,大多数(如果不是全部)CPU(奔腾 4+)都支持此功能,而且本世纪的任何服务器级 CPU 肯定都支持此功能。在任何相对现代的系统上,您都不必担心这一点。

相关内容