微博

电脑版
提示:原网页已由神马搜索转码, 内容由weibo.com提供.

Charles_Axura

Charles_Axura

相见不如怀念
**7.1.1** Tcache update。最近在打一个难度非常高的 challenge,目前全球有8个人完成,急着想做第9个,太没有时间做笔记了。但是现在卡住了,还是先沉下心来总结一下,关于 tcache 之前没有阐述清楚,和补充在 libc 2.32 之后加入的 safe linking 的机制。

<=== struct ===>

首先 tcache 很像 fastb ​​​​...展开全文c
** Heap implementation - Unsorted bin ** 简单总结下堆管理器分配内存时在进入 unsorted bin 大循环之前的流程(这里时对前面一篇 heap implementation 总结的修改和更正,一些细节就不再赘述):

当我们进行 malloc 申请的时候,首先第一时间去找 tcache,看看里面有没有符合申请大小的 free chunk ​​​​...展开全文c
这几天看了几篇新的研究,基本能够判定 jackfromeast.site 里面关于 5.2 部分 描述unsorted bin 大循环的描述是错误。好家伙虽然这里我也抓出了好几个不正确的地方,没想到这里也被误导了。关于 unsorted bin 大循环的部分要重新写一条。
**Chunk allocation algorithm** 这部分资料来自 jackfromeast.site,这里有总体地梳理了一下 allocation 时的流程,最后两点的内容我认为有问题,在注释中添加了更正。很多资料都是一些个人的总结,等我们总结完这篇之后,自己设计一段代码走 gdb 进行实验。

1. Obtain the lock for the allocation ​​​​...展开全文c
**10.1** 这里我们要伪造fake_chunk(victim)和对stack进行布置,目的是将victim压入SmallBin,然后再把victim分配出来的时候把stack部分“塞入”Smallbin,这里要绕过SmallBin的检测:bck=victim->bk; bck->fd=victim。所以我们要做的篡改victim的bk,部署stack的fd,最终拿到stack作块要绕过两次检测 ¡查看图片
**10** House of Lore,与 Glibc 堆管理中的 Small Bin 的机制紧密相关,可以让我们实现 malloc 到任意指定位置的 chunk,从而达到任意地址写的目的。前面我们充分分析过 heap implementation 中各个 bin 的运作机制,对后面这些理解会很有帮助。

前提条件:需要控制 SmallBin Chunk 的 bk 指针,并且 ​​​​...展开全文c
**Chunk free algorithm** 类似于 malloc,free 函数也有一层封装,命名格式与 malloc 基本类似,也就是 __libc_free。其中里面的 _int_free(mstate av, mchunkptr p, int have_lock) 就是我们真正执行 free 的函数。

值得注意的是,free 的检查会比 malloc 多——当我们就把 chunk 置入 bins 中,gli ​​​​...展开全文c

正在加载中,请稍候...