溢出漏洞
缓冲区溢出
栈溢出
安全技术
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