参考文章:【tw】heap_paradise_pwnable heap paradise-CSDN博客
通过double free,获取一个任意地址写,此时写的是一个和其他正常chunk重叠的地址,
在构造该chunk的时候,这个chunk既是unsorted又是fastbin,
unsorted bin是为了获取main_arena,
fastbin是为了任意地址写,有了main_arean,这个地址前部分和libc是一样的,修改最后2个字节为_IO_stdout,还得碰撞一下第3个字节,就可以写_IO_stdout,来打印libc地址。
接着还是malloc_hook
太巧妙了,第一次double free还得将off:20(chunk)的fd和size构造
# off:0 和off:20重叠,修改20为unsorted bin
# off:20 和off:70 重叠 修改70的下一个chunk为a0,a0是unsorted bin(off:20的size70,chunK(20)被malloc后就是a0)
# off:70 和 off:a0 重叠 70修改a0的fd为IO_stdout
# off:20 和off:70 重叠 修改为malloc_hook

846

被折叠的 条评论
为什么被折叠?



