House of force
原理
利用Top Chunk在分配时的bug,改写其size,实现任意地址写。
利用步骤
- 改写Top Chunk的size为一个很大的值,通常可以是-1,这将被转换成无符号的最大值。
- 调用malloc(targetAddress - wilderness - 2sizeof(long))申请一个新的chunk。其中targetAddress是稍后需要控制的地址;2sizeof(long)是2倍的heap metadata的大小;wilderness是Top Chunk的起始地址,在main_arena中也会有引用。
- 再次malloc,这个malloc出来的chunk地址就是targetAddress,就能达成任意地址的写了。




