house of force
基本信息
- 利用类型:堆利用
- 堆利用类型:top chunk相关
- 利用思想:通过修改top chunk大小,使得分配任意大小都是从top chunk里边切出来,这样分配一个大小占满想要写的位置和当前分配位置top chunk的差,下一个分配就可以分配出想要写的位置
利用难点
- 需要有办法能够更改到top chunk大小
- 需要能够知道当前位置和要写位置的差值
- 需要能够自由控制将要分配的chunk的大小,也就是malloc的参数值
- 分配后,要能够修改分配出来的内容,这个技巧只负责分配出想要的位置。
详细信息
当相应的bins没有可分配的chunk的时候,malloc会从top chunk去切一部分作为分配的结果。如果top chunk不够大,将会调用sysmalloc向系统申请空间放入top chunk,然后再从top chunk进行分配:
victim = av->top;
size = chunksize (victim);
if ((unsigned long) (size) >= (unsigned long<