泉哥 - 看雪安全论坛.docVIP

  • 124
  • 0
  • 约2.98万字
  • 约 33页
  • 2018-02-16 发布于境外
  • 举报
泉哥 - 看雪安全论坛

Exploit编写系列教程第十一篇:堆喷射技术揭秘(下) 【作者】:Peter Van Eeckhoutte 【译者】:hellok Heaplib Cache Plunger技术 – oleaut32.dll 正如Alexander Sotirov 在上文中说的,申请字符串(通过SysAllocString)不总是从系统堆里面申请的,而是通常被一个oleaut32中的堆管理引擎来处理。 这个引擎管理内存,以方便快速分配/再分配。还记得我们前面看到的堆栈跟踪吗? (要做到这一点,需要满足几个条件,但这些条件都不)这些指针指向在堆中的任何位置,当一个新的分配情况,缓存系统会看它是否有一大块所要求的大小,可以直接返回。 这将提高性能,并在一定程度上也阻止了碎片。 32767 “bin” 在缓存表里可以保存堆块的数值。有4种“bin” : Bin Size of blocks this bin can hold 0 1 to 32 bytes 1 33 to 64 bytes 2 65 to 256 bytes 3 257 to 32768 bytes 每一个bin可以保存6个指针。 理想的情况下,做堆喷雾时,我们要确保我们的分配是由系统堆处理。通过这种方式,基于堆的可预测性的特点,连续申请会导致在同一内存地点的连续内存空间。缓存管理器返回的地址可以在堆里面的任何地方,

文档评论(0)

1亿VIP精品文档

相关文档