- 8
- 0
- 约3.45万字
- 约 33页
- 2019-03-04 发布于天津
- 举报
Exploit编写系列教程第十一篇:堆喷射技术揭秘(下)
【作者】:Peter Van Eeckhoutte
【译者】:hellok
Heaplib
Cache Plunger技术 – oleaut32.dll
正如Alexander Sotirov 在上文中说的,申请字符串(通过SysAllocString)不总是从系统堆里面申请的,而是通常被一个oleaut32中的堆管理引擎来处理。
这个引擎管理内存,以方便快速分配/再分配。还记得我们前面看到的堆栈跟踪吗?
每次一个内存块被释放后,堆管理器就会尝试把指向那个内存堆块的指针保存到缓存中(要做到这一点,需要满足几个条件,但这些条件都不影响我们)。这些指针指向在堆中的任何位置,所以所有数据都有可能出现在某个地方。当一个新的分配情况,缓存系统会看它是否有一大块所要求的大小,可以直接返回。
这将提高性能,并在一定程度上也阻止了堆碎片。
32767 bytes大小以上的块会直接被释放掉,并且不会被缓存。
缓存管理表按块大小排序组织。每一小块“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可以
您可能关注的文档
最近下载
- 自治区职称评审信息历史数据补录操作指南V1.01.PDF VIP
- QJ2940A-2001 航天用印制电路板组装件 修复和改装技术要求.pdf VIP
- 实用英语交际职业技能等级考试.pdf VIP
- SJ20883-2003 印制电路组件装焊后的清洗工艺方法.pdf VIP
- 生产线停线管理规程.docx VIP
- 初中物理:【人教版】九年级物理(全一册)知识点总结.pdf VIP
- 新能源物流车“以租代购”运营模式分析与探讨.docx VIP
- TCAAMTB-乘用车电子驻车制动系统用电机性能要求和测试方法.pdf VIP
- 高中物理电磁感应电磁感应.ppt VIP
- 高中化学复习硫及其硫的化合物.ppt VIP
原创力文档

文档评论(0)