type
status
date
slug
tags
summary
category
icon
password
how2heap 2.31

构造出来一个假chunk,主要是size的问题
将其free到fastbins 中去

然后malloc,新的chunk的地址就会是我们构造的地址,从而实现地址写的效果

其中:
- fake chunk地址在ISMMAP应设置为0,否则会直接调用munmap_chunk函数去释放堆块,即进不去fastbin
- fake chunk地址必须是
MALLOC_ALIGNMENT对齐的。具体的,默认情况下32位地址必须8字节对齐,64位16字节对齐。
- fake chunk的size和next chunk的size字段,至少不小于
MINSIZE,即其值默认最少不低于2 * SIZE_SZ(32位8字节,64位16字节),并且不大于av->system_mem(system_mem默认128kb)。
- 进入fastbins的fake chunk其size必须不超过max fast size(DEFAULT_MXFAST 64 * SIZE_SZ / 4)。
- 作者:moyaoxue
- 链接:https://moyaoxue.de/article/15025ac9-6ea8-805b-bf9f-ee87507b1720
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

