ASLR(内存地址随机化)---系统层
操作系统可以将函数调用栈和libc的起始地址设为随机地址,这样程序每次运行地址会随机变化 。
1)用return2libc和ROP绕过
2)shellcode不可执行
3)难以找到shellcode和system
4)-fno-stack-protector 关闭
Canary(Stack protect)
1)-z execstack可关闭
2)用SSP来泄露
PIE(内存空间随机化)
可以防范基于return2libc方式的针对DEP的攻击
RELRO
重定位只读,保护库函数的调用不受攻击者重定位的影响
1)ROP绕过