4、查看应用程序是否受到DEP保护
在Windows 7中,我们如何知道应用程序是否受到DEP保护呢?其实,通过任务管理器我们可以查看到我们想要知道的信息。不过,默认情况下Windows 7的任务管理器并不显示应用程序的DEP列,需要手动操作将其调出来。在任务栏上单击鼠标右键选择“启动任务管理器”,在Windows 任务管理器窗口中单击“查看”菜单选择“选择列”,然后从选择进程页列中找到并勾选“数据执行保护”项即可。这样就会在任务管理器中添加“数据执行保护”列,在其下面我们可以看到进程的DEP状态(启用或者停用)。笔者的Windows 7系统选择的是级别1,可以看到所有的系统进程进程都是启用了DEP保护,而非系统进程比如“WinRar”则DEP状态为“停用”。不过,笔者这里要说明一下:虽然有些非系统的应用程序,但其DEP状态为“启用”(比如笔者系统中运行的“Windows 7优化大师”),这是因为这些应用程序在安装过程中会创建并注册成系统服务,所以在Windows看来它也是系统进程,当然也就会执行DEP保护。(图3)
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)
总结:其实DEP并部署医治Windows系统缓冲区溢出问题的万能解药,它的意义在于使得恶意软件难以利用缓冲区溢出。而且DEP提供的缓冲区溢出保护也有一定的副作用,就是是被DEP阻止的应用程序通常将被挂起,即使DEP停止了恶意程序执行恶意代码,但是这种情况为恶意程序启动DOS攻击创造了新的机会。最后说明一点,本文有关DEP的解析虽然以Windows 7为例,但大部分也适用于Windows Vista和Windows Server 2008。希望本文对于大家认识EDP和理解Windows的安全机制有所帮助。
- 第3页:程序是否受到DEP保护
- 相关阅读:
- ·伦敦地铁站剧透《星战7》惩罚逃票者
//soft.zol.com.cn/559/5599500.html - ·基于Android6.0的MIUI7在平安夜推送
//soft.zol.com.cn/559/5598649.html - ·Windows应用内购出BUG 买了却不能用
//soft.zol.com.cn/559/5596078.html - ·微软发布Windows 10专业版免费升级
//soft.zol.com.cn/559/5593718.html - ·Win7份额萎缩 用户逐步迁移Windows 10
//soft.zol.com.cn/559/5590133.html