WEB开发网
开发学院操作系统Windows XP Windows XP SP2 中的数据执行保护功能的详细说明 阅读

Windows XP SP2 中的数据执行保护功能的详细说明

 2008-08-22 09:55:23 来源:WEB开发网   
核心提示: 32位Windows版本上的DEP用户模式DEP在不久的将来,许多运行Windows和Windows兼容程序的计算机都将使用运行32位Windows版本的32位处理器,Windows XP SP2 中的数据执行保护功能的详细说明(2),但是,AMDOpteron和Athlon-64等新的处

32位Windows版本上的DEP

用户模式DEP

在不久的将来,许多运行Windows和Windows兼容程序的计算机都将使用运行32位Windows版本的32位处理器。但是,AMDOpteron和Athlon-64等新的处理器同时支持32位和64位操作模式。(32位操作模式是旧模式;而64位操作模式是本机模式。)

同时支持32位和64位操作模式的新处理器可以在32位操作系统和32位应用程序环境中运行,在启用物理地址扩展(PAE)模式后,它们还可以使用DEP

我们将探讨分别为每个32位应用程序禁用或启用DEP的方法。默认情况下,为64位应用程序启用DEP。DEP异常将导致Windows系统上出现状态代码STATUS_ACCESS_VIOLATION(0xc0000005)。在大多数进程中,这是一个未经处理的异常,并导致进程终止

内核模式DEP

对于用户模式和内核模式,DEP的工作原理相同。在内核模式下,不能分别为每个驱动程序启用或禁用内存区域DEP。默认情况下,在32位Windows版本上,DEP仅适用于堆栈。在64位Windows版本上,DEP适用于堆栈、页面缓冲池和会话池。内核模式下的访问冲突将导致出现Bugcheck0x000000FC:ATTEMPTED_EXECUTE_OF_NONEXECUTE_MEMORY

兼容性问题

应用程序和驱动程序都可能会发生DEP兼容性问题。

应用程序兼容性

有些应用程序行为可能与DEP不兼容。执行动态代码生成(如实时代码生成)的应用程序以及不使用“执行”权限明确标记生成的代码的应用程序与DEP之间可能存在兼容性问题。

试图违反DEP的应用程序将会出现异常,并显示状态代码STATUS_ACCESS_VIOLATION(0xc0000005)。如果应用程序需要可执行内存,则必须在相应的内存中明确设置此属性,方法是在Virtual*内存分配函数的内存保护参数中指定PAGE_EXECUTE、PAGE_EXECUTE_READ、PAGE_EXECUTE_READWRITE或PAGE_EXECUTE_WRITECOPY。

上一页  1 2 3 4 5 6  下一页

Tags:Windows XP SP

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接