注:本文版权归IT专家网所有,未经授权请勿转载!
DEP(Data Execution Prevention)即“数据执行保护”,这是Windows的一项安全机制,主要用来防止病毒和其他安全威胁对系统造成破坏。微软从Windows XP SP2引入了该技术,并一直延续到此后的Windows Server 2003、Windows Server 2008中。毫无例外,在Windows 7中DEP也作为一项安全机制被引入进来。本文将对Windows 7下的DEP进行一番解析。
1、DEP的安全机制
 
        可以说,溢出是操作系统(应用软件)永远的痛,Windows 7自然也不例外。所谓溢出主要指缓冲区溢出,就是利用系统(应用软件)漏洞从只有Windows和其他程序可以使用的内存位置执行恶意代码从而达到控制系统的目的。如前所述,缓冲区溢出***经常在其它程序的内存缓冲区写入可执行的恶意代码,然后诱骗程序执行恶意代码。使用DEP的目的是阻止恶意插入代码的执行,其运行机制是,Windows利用DEP标记只包含数据的内存位置为非可执行(NX),当应用程序试图从标记为NX的内存位置执行代码时,Windows的DEP逻辑将阻止应用程序这样做,从而达到保护系统防止溢出。
2、DEP的实现方式
微软DEP实现采用了两种方式,即硬件强制DEP和软件强制DEP。硬件强制DEP,这需要处理器的支持,不过现在大多数处理器是支持DEP的。软件强制DEP,这是由Windows操作系统在系统内存中为保存的数据对象自动添加的一组特殊指针提供。如何知道自己的处理器是否支持DEP呢?右键单击桌面上的“计算机”图标,选择“属性”,在打开的“系统”窗口中点击“高级系统设置”链接打开“系统属性”面板。在“高级”选项卡页面中的“性能”下点击“设置”打开“性能选项”面板。点击“数据执行保护”选项卡,在该页面中我们可确认自己计算机的处理器是否支持DEP。如果支持会在底部的一行显示“你的计算机处理器支持基于硬件的DEP。”,反之会显示“你的计算机处理器不支持基于硬件的DEP,不过,Windows能使用DEP软件防止一些类型的***。”(图1)
3、DEP的运行级别
在Windows 7中,DEP默认是激活的。不过,DEP不能保护系统中所有运行的应用程序,实际DEP能够保护的程序列表由DEP的保护级别定义。DEP支持两种保护级别:级别1,只保护Windows系统代码和可执行文件,不保护系统中运行的其它微软或第三方应用程序;级别2,保护系统中运行的所有可执行代码,包括Windows系统代码和微软或第三方应用程序。默认情况下,Windows 7的DEP运行在级别1的保护状态下。在“数据执行保护”配置面板中,我们
能够设置DEP的保护级别。如图所示笔者的Windows 7默认“只为基本的Windows程序和服务激活了DEP”,即DEP保护级别为1。当然,我们也可选择“除了以下所选择的,为所有程序和服务打开DEP” 切换到DEP保护级别2。
在保护级别Level 2可以选择特定的应用程序不受DEP保护。在实际应用中,这个功能非常重要,因为一些老的应用程序在激活DEP时无法正常运行。 例如,我我们在使用Word进行文本编辑时,它会自动被排除在DEP保护之外。需要注意的是,在将DEP保护切换到级别2之前,必须运行应用程序兼容性测试,确保所有的应用程序在DEP激活时能正常运行。从DEP中排除应用程序, 需要在DEP配置页面使用“添加”按钮,将应用程序的可执行文件加入到排除列表中。
(图2)
除了上述方法外,我们还可以通过一个工具排除应用程序的DEP保护。这个工具就是DisableNX,它是微软应用程序兼容性套件(Microsoft Application Compatibility Toolkit )中的一个工具,该套件的最新版本为5.5,大家可以访问微软官方网站下载获得,下载地址是:http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=24da89e9-b581-47b0-b45e-492dd6da2971。该工具的使用比较简单,大家可根据命令帮助完成排错操作。
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的安全机制有所帮助。

转载于:https://blog.51cto.com/kofstart/281729

关于Windows 7下的DEP(数据执行保护)相关推荐

  1. 如何关闭Windows XP/Vista/Windows 7的DEP数据执行保护

    数据执行保护 (DEP) 是一种Windows安全机制,从Windows版本顺序上看是从Windows XP SP2开始引入,通过监视程序以确保它们使用的系统内存是安全的,帮助防止操作系统受到病毒和其 ...

  2. 计算机系统保护怎么打开,Win7系统开启DEP数据执行保护的具体方法

    大部分用户都不知道数据执行保护 (DEP)有什么作用, DEP数据执行保护有助于防止我们的计算机遭受病毒的侵害,也有助于防止其他安全威胁危害我们的计算机.Win7专业版系统默认没有开启DEP数据执行保 ...

  3. 数据执行保护(DEP)的基本设置

    1)执行权限 必须是管理员,而且可以修改boot.ini文件 2)数据执行保护DEP的几个可选参数    NOExecute=Optin (为关键Windows程序和服务启用数据执行保护)    NO ...

  4. winxpsp2数据执行保护

    现在的WinXP用户已无可选择地升级到了WinXP SP2,这样也让用户必须无条件地接受一个名为DEP(数据执行保护)的安全保护功能.如果你用上了64位CPU,那么,这个保护功能将更    加强大,因 ...

  5. 如何解决经常出现Windows数据执行保护的提示?

    方法一:  关闭数据保护,编辑Boot.ini文件,将/NoExecute=OptIn 改为/NoExecute=AlwaysOff.  要编辑Boot.ini,请在开始中我的电脑上点右键-属性-高级 ...

  6. 关闭数据执行保护(DEP)

    数据执行保护 =  DEP = Data Excute Protection 1.Windows XP下关闭 在桌面"我的电脑"点击鼠标左键--属性--高级--性能设置选项 2.V ...

  7. DLL/OCX文件的注册与数据执行保护DEP

    注册/反注册dll或ocx文件时,无论是用regsvr32还是DllRegisterServer/DllUnregisterServer,可能会遇到[内存位置访问无效]的问题: 此时把操作系统的数据执 ...

  8. 计算机打数据执行保护删除不掉,运行某应用程序时,出现数据执行保护 (DEP)提示的解决方案...

    原因分析: 数据执行保护技术(Data Execution Prevention,以下简称 DEP)是 Windows XP SP2和 Windows 2003 SP1新增的一项功能.DEP 简单地说 ...

  9. 彻底关闭数据执行保护(DEP)

    彻底关闭数据执行保护(DEP) 1.直接修改Boot.ini文件(彻底关闭数据执行保护DEP)  在WinXP SP2系统所在分区根目录下找到Boot.ini文件(需打开系统隐藏文件及受保护的系统隐藏 ...

最新文章

  1. 数据库_数据库篇-第一章:数据库基本概念
  2. 在HTML中英文换行问题
  3. 浅谈Android中Lifecycle
  4. 更易型算法(Manipulating Algorithms)
  5. GPU Gems1 - 10 电影级的光照
  6. 1117. H2O 生成
  7. android点赞动画仿twritter,【点赞动画仿抖音】Android 自定义view动画--酷炫点赞动画...
  8. java21天打卡Day13-正则表达式
  9. SVD在推荐系统中的推导及应用-简单明了
  10. 微型计算机任务名称,任务五微型计算机的硬件组成.ppt
  11. xkcd 单线程下载图片
  12. Verilog之闪烁灯
  13. oracle中毒,oracle数据库中毒恢复 oracle数据库解密恢复 服务器中勒索病毒解密恢复.Hermes666...
  14. 你不是骄傲,而是活得太傲娇了
  15. 写了个自动批改小孩作业的代码~
  16. 李子柒130个视频1万图片5万颜色数据可视化的背后,是古柳三年的念念不忘
  17. SSD202 驱动WIFI-ssw01b的AP模式
  18. 同步时钟系统架构与原理
  19. Get智能写作 | 掌握这5个小技巧,让你的写作飞起来
  20. PostgreSQL , PostGIS , 球坐标 , 平面坐标 , 球面距离 , 平面距离

热门文章

  1. 中文检索式问答机器人模型
  2. 使用脚本自动创建AD中的层次化结构容器及对象
  3. Java编程基础之Set和Map的简单使用
  4. ILRuntime学习(之一)
  5. android 监测属性值变化,Android 的系统属性(SystemProperties)分析 | Bob's Blo...
  6. 屏下指纹版iPhone终于稳了!效果很好很强大
  7. Ubuntu16.04升级 Ubuntu18.04
  8. Python爬虫之HDU提交数据
  9. Linux查找目录或文件
  10. mac 安装mysql 数据库