Pwn how2heap(first_fit篇)
我们先看看first_fit滴代码嗷
我们尝试运行该程序qwq,会出现神奇的情况
哎嘿,我们会发现第三个堆和第一个堆的地址一毛一样,这是为什么呢?
这段代码实际上展示的是堆分配的策略
在分配内存时,malloc会先到fastbin(或者unsorted bin)中查找合适大小的已经被free的chunk,如果没有,就会把unsorted bin中的所有chunk分配到所属于的bins中,然后再去这些bins中寻找合适的chunk。当你使用malloc分配新内存时,glibc更倾向于从先前被释放的空间中取出合适大小重新分配。