初探unlink
本人呢也是刚学习unlink机制不久,但是最近有一点事情,所以隔了好几天才开始写。这次还是主要围绕着题来写,当然是初探,所以有很多细致的地方还是不太懂的。
在堆内存管理机制中,’unlink’操作是指把一个双向链表中的空闲堆块取,然后和目前物理相邻的 free chunk 进行合并。
这只是它的概念,其实不一定非得物理相邻。
最简单的毫不严谨的表达我们利用unlink漏洞,就是
申请一个堆块A
申请一个堆块B(不能进入tcache或者fastbin,为了使)
申请一个堆块C(防止和C堆块前面的堆块释放的时候与topchunk合并)
咱们利用unlink漏洞的主要目的是我们在A块里面精心构造一个堆块(简称F堆块),并且在释放B堆块的时候会与还未释放的F堆块进行合并。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 cccchen!
评论
GitalkDisqus