NX 保护 no execute(栈禁止执行)
*******可写的不可执行,可执行不可写(栈段,堆段呢?)****************
(又称DEP)数据执行保护。可写的不可执行,可执行的不可写
栈上的数据没有执行权限,防止攻击手段:栈溢出 + 跳到栈上执行 shellcode。
NX是英语“No eXecute”的简称,中文一般翻译成“禁止运行”,是一种CPU应用技术,用来把存储器区域分隔为只供
存储处理器指令集单元,或只供数据使用单元。任何使用NX技术的存储器,代表仅供数据使用,因此处理器的指
令集并不能在这些区域存储。
这种技术可防止大多数的缓冲溢出攻击,即一些恶意程序,把自身的恶意指令集放在其他程序的数据存储区并运行,
从而控制整台计算机。
Stack Canary( 栈 中多一个random)
********栈空间加个随机数,以检测是否被覆盖**********
在栈帧中插入一个随机数,函数执行完在返回之前,程序通过检查这个随机数是否改变来判断是否存在栈溢出。
PIE 与 ASLR (地址随机化)
PIE(Position Independent Executable) 位置独立可执行
ASLR stack、mmap以及堆区,这些区间的地址随机化。即便是shellcode打入到这些区域,因不知道地址,无法
跳转到。

Relro(GOT表重定向只读)
(Relocation Read-Only)重定向只读。*****GOT表只读********
其实GOT表
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删