Coreinfo 向我展示了一堆说明我的处理器支持。但我感兴趣的是DEP
数据执行保护.DEP
已列出Windows 2016 Server 中 CPU 必须支持的功能。 它是什么?
来自的文档微软似乎将其与NX
DEP
和之间有什么区别?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 肯定都支持此功能。在任何相对现代的系统上,您都不必担心这一点。