0x00 利用要点
1.申请一块非常大的块.
2.精心构造size覆盖top chunk的chunk header.
3.调用malloc()实现任意地址写
0x01 申请一块非常大的块.
申请一个负数大小的块就可。一般是-1.
malloc(-1)
0x02 精心构造size覆盖top chunk的chunk header.
32位:SIZE = 目标地址 - 8 - top_chunk
64位:SIZE = 目标地址 - 16 - top_chunk
malloc(SIZE)
0x03 调用malloc()实现任意地址
任意malloc一个块便可以对目标地址进行写操作了
0x04 参考链接
https://github.com/shellphish/how2heap/blob/master/house_of_force.c
http://w0lfzhang.me/2016/10/15/house-of-force/
https://gbmaster.wordpress.com/2015/06/28/x86-exploitation-101-house-of-force-jedi-overflow/ .