ROP

return-oriented-programming 返回导向编程技术

Posted by 汤汤 on December 13, 2023

溢出漏洞

缓冲区溢出
栈溢出

安全技术

ASLR

PIE

SSP

Stack smashing protection
编译器级,在编译时执行

在栈的基址指针和返回地址的前面加上一个伪随机数,栈cookies或canaries,作为函数序言(function prologue)的一部分,在程序返回前比较该值是否一致

DEP

Data Execution Prevention 数据执行保护
硬件级、操作系统级 Windows XP service pack2开始提供DEP技术的软件支持。

硬件DEP 软件DEP
safeSEH No-execution page-protection(NX,from AMD)
execute disable bit(XD, from Intel)
  【需要CPU支持】OS设置内存页的NX/XD属性,表示当前页是否可执行
W xor X

利用DEP实现的一种内存保护策略:进程或内核地址空间每个page(或block)是可写的或者是可执行的,但不能同时可写且可执行。

Once-writable, nerver executable

page can never be marked as executable after being marked as writable