DEP数据执行保护和ASLR(Address Space Layout Randomisation)。

Address Space Layout Randomisation(ASLR)是一项阻止shellcode正确运 行大的技术。随机模块地址定位和某些内存数据结构。
DEP阻止某些内存扇区。堆栈上代码 运 行。用return-oriented programming(ROP)技术溢出漏洞。
DEP强制某些结构,包括堆栈标记为不可执行。CPU支持加了一个No-Execute(NX)位。XD位。允许CPU提高execution权限在硬件
级别。DEP在2004(linux kernel2.6.8)引入。 Microsoft2004在WinXP SP2引入。使用ROP代码gadget绕过。

Anti-Dep:绕过Dep技术ROP(return oriented programming),ROP由一系列的 Gadget组成。所谓ROP Gadget,就是一系列以retn结尾的指令。
ASLR(Address space layout randomization)地址空间格局随机化。在PE头设置属性:IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE标识表明其支持ASLR。
ASLR影响包括:模块随机化、堆栈随机化和PEB/TEB随机化。
ANTI-ASLR:未启用 ASLR模块:堆喷射技术(HeapSpray),将Shellcode 布局到0x0C0C0C0C或其他指定地址。 并不受堆栈随机化影响。
或覆盖部分返回地址,虽然模块加载基地址发生变化,但各模块入口点地址低字节不变,只有高位变化。如果存在缓冲区溢出可用memcpy对后
两个字节覆盖。

发表评论