关于global max fast的利用技巧。

global_max_fast 的利用

现在才知道 global_max_fast 的一个小技巧,我之前一直以为就是在没有 fastbin 的时候能构造 fastbin。但是没想到它能在 libc 中任意写。首先 fastbin 是存在 fastbinY 数组当中,它的长度好像只有 10。

但是我如果把任意的size都视为fastbin的话,那么这就有一个下标越界了。

比如我把 0x40000 的 chunk 当成 fastbin,那么在free 的时候就会有这样的语句出现:

1
main_arena->fastbinY[0x4000]=chunkptr

我这个size 如果能改的任意,那么它就能写在 main_arena 之后的任何的地址。并且由于它在 libc 的地址是固定的,所以我要往一个 libc 中的地址写上堆的地址就很容易。

这里就mark一下,以后遇到了来这更一下传送门,目前也没有找到什么好的例题。