DEP-数据执行保护是一套软硬件技术,能够在内存上执行额外检查以防止在不可运行的内存区域上执行代码。
在 Microsoft Windows XP Service Pack 2、 Microsoft Windows Server 2003 Service Pack 1 、 Microsoft Windows XP Tablet PC Edition 2005 、 Microsoft Windows Vista 和 windows 7 中,由硬件和软件一起强制实施 DEP。DEP 有两种模式,如果CPU 支持内存页NX 属性, 就是硬件支持的DEP。只有当处理器/系统支持NX/XD位(禁止执行)时,windows才能拥有硬件DEP,否则只能支持软件 DEP,相当于只有SafeSEH保护。
几种绕过方法:
1.ret2lib
其思路为:将返回地址指向lib库中的代码,而不直接跳转到shellcode 去执行,进而实现恶意代码的运行。
2.利用TEB突破DEP
受系统版本限制,只能在XP sp2及其以下版本的windows系统上使用,因为更高版本的系统,其TEB地址是不固定的,每次都是动态生成的。
3.关闭DEP