Debugging Tools for Windows |
/noexecute 参数启用、禁用和设置数据执行保护(DEP)——即一组用于防止有害代码在被保护内存空间中被执行的硬件和软件技术。
关于使用/noexecute 参数和其他和DEP设置有关的参数的信息,查看用于配置DEP和PAE的引导参数。
注意 DEP能够很大的提高安全性,如果没有特别原因不要禁用DEP。
在Windows XP SP2上,该子参数同时禁用物理地址扩展(PAE)。但是在Windows Server 2003 SP1上不会禁用PAE。
数据执行保护(DEP)由硬件和软件方法结合。软件DEP必须由操作系统支持,而硬件DEP在应该只包含数据的页表入口中设置了一位来避免被当作代码执行。硬件DEP必须由处理器和操作系统配合支持。如果操作系统支持DEP,但是处理器不支持,则只有软件DEP会被启用。
DEP在Windows Server 2003 SP1、Windows XP SP2、Windows Vista和之后的Windows中都被支持。
/noexecute 参数只在Windows Server 2003 SP1、Windows XP SP2中支持,在Windows Vista中,使用BCDEdit的NX成员。
/noexecute 只在32位进程上起作用。它启用软件DEP,并且如果硬件支持的话,也启用硬件DEP。
在64位进程中,DEP默认启用并且不能被禁用掉(和/noexecute=alwayson效果一样)。在这些进程上,/noexecute 参数被跳过。在64位操作系统上,/noexecute 只作用于32位进程。
Windows SP2上,安装程序在引导入口中添加/noexecute=optin。
在Windows 2003 SP1上,安装程序在引导入口添加/noexecute=optout。
无论如何,在所有支持DEP的操作系统上,如果没有在引导入口指定/noexecute,则系统默认使用/noexecute=optin 的特性。
在32位系统中,硬件DEP需要物理地址扩展(PAE)的支持。因此,当支持硬件DEP的机器启用DEP是,32位Windows 自动启用PAE并跳过/nopae。
在Windows XP SP2上,使用/noexecute=alwaysoff禁用DEP时,Windows同时禁用DEP和PAE。如同使用了/noexecute=alwaysoff /nopae 。要在支持硬件DEP的系统上禁用DEP并启用PAE,使用/noexecute=alwaysoff /pae来明确启用PAE。
但是,在Windows Server 2003 SP1上,使用/noexecute=alwaysoff 来禁用DEP时,Windows 只禁用DEP。PAE仍然启用并且系统跳过禁用PAE的外在的尝试,例如/nopae参数。要在Windows Server 2003 SP1上同时禁用DEP和PAE,使用/execute。
获取关于这些参数和他们作用的表格,查看用于配置DEP和PAE的引导参数。
要设置/noexecute=optin 或/noexecute=optout 特性,或者在某些可执行文件禁用DEP,可以打开控制面板,双击系统(System),点击性能(Performance)下的高级(Advanced)选项卡,点击设置(Settings)并点击数据执行保护(Data Execution Prevention)选项卡。要使设置起效,必须重起计算机。
关于DEP的更多信息,查看