加载中...

数据执行保护(Data Execution Prevention,DEP)是一种利用硬件NX(No-eXecute)位的内存保护机制。它将栈、堆等数据区域标记为不可执行,一旦处理器试图在这些区域执行指令,便触发异常终止程序。
传统缓冲区溢出攻击会把shellcode注入到栈或堆等可写数据区,再劫持控制流跳转过去执行。DEP通过区分内存页的可写与可执行属性,使注入到数据区的代码无法运行,从而挫败这类经典攻击。
DEP无法阻止复用已有可执行代码的攻击,ROP、ret2libc等技术正是为绕过DEP而生。因此现代系统通常将DEP与ASLR、CFI等机制叠加使用,形成纵深防御。

登录 后参与讨论
暂无讨论,来发表第一条评论吧