热点推荐
ZOL首页 > 软件资讯 > 技巧应用 > 操作系统 >

程序是否受到DEP保护

Windows 7下的数据执行保护(DEP)解析

CBSi中国·ZOL 作者:中关村在线 刘志坡 【原创】 2009年10月22日 20:22 评论

    4、查看应用程序是否受到DEP保护

    在Windows 7中,我们如何知道应用程序是否受到DEP保护呢?其实,通过任务管理器我们可以查看到我们想要知道的信息。不过,默认情况下Windows 7的任务管理器并不显示应用程序的DEP列,需要手动操作将其调出来。在任务栏上单击鼠标右键选择“启动任务管理器”,在Windows 任务管理器窗口中单击“查看”菜单选择“选择列”,然后从选择进程页列中找到并勾选“数据执行保护”项即可。这样就会在任务管理器中添加“数据执行保护”列,在其下面我们可以看到进程的DEP状态(启用或者停用)。笔者的Windows 7系统选择的是级别1,可以看到所有的系统进程进程都是启用了DEP保护,而非系统进程比如“WinRar”则DEP状态为“停用”。不过,笔者这里要说明一下:虽然有些非系统的应用程序,但其DEP状态为“启用”(比如笔者系统中运行的“Windows 7优化大师”),这是因为这些应用程序在安装过程中会创建并注册成系统服务,所以在Windows看来它也是系统进程,当然也就会执行DEP保护。(图3)


Windows 7下的数据执行保护(DEP)解析


    5、如何关闭DEP保护

    需要提醒的是,当DEP运行在保护级别为2时,由于需要在处理器和系统内存运行所有的DEP检查,会影响系统性能,使得系统运行将会变慢一些,所以在某些情况下我们可以考虑完全关闭DEP保护。我们知道在DEP设置面板中是不提供关闭DEP选项的,那如何关闭呢?如果是Vista以前的系统,我们可以通过修改Boot.ini文件,在其中添加NoExecute=Always0ff语句来关闭。而在Windows Vista、Windows Server 2008和Windows 7中,boot.ini文件已经被启动配置数据(Boot Configuration Data)即BCD文件所代替,不过我们可以使用微软提供的命令行工具bcdedit.exe来编辑BCD文件。

    我们在命令提示符下运行不带有任何参数的bcedit命令,可以看到当前的启动配置,如图所示显示了在Windows 7下运行bcdedit的结果,其中最后一行显示nx OptIn,表示当前的DEP保护级别为1,如果显示为OptOut则表示当前的EDP保护级别为2。如果我们要关闭EDP,只需将nx设置为Always0ff即可。在命令行下执行命令“bcdedit /set nx alwaysoff”,重启系统后Windows 7的EDP就关闭了。反之,如果要开启所有服务和应用程序的DEP,执行命令“bcdedit /set nx alwayson”就可以了。(图4)

Windows 7下的数据执行保护(DEP)解析


    
    总结:其实DEP并部署医治Windows系统缓冲区溢出问题的万能解药,它的意义在于使得恶意软件难以利用缓冲区溢出。而且DEP提供的缓冲区溢出保护也有一定的副作用,就是是被DEP阻止的应用程序通常将被挂起,即使DEP停止了恶意程序执行恶意代码,但是这种情况为恶意程序启动DOS攻击创造了新的机会。最后说明一点,本文有关DEP的解析虽然以Windows 7为例,但大部分也适用于Windows Vista和Windows Server 2008。希望本文对于大家认识EDP和理解Windows的安全机制有所帮助。

 

上一页 1 2 3 
本文导航
查看本文作者 刘志坡 的其他文章>>
看完本文后的感受:文章感受排行>>
频道热词:微信  手机QQ  12306  
视觉焦点
新浪微博