-
-
[原创]#30天写作挑战#Tcache Attack原理学习
-
发表于:
2020-9-8 10:00
19272
-
[原创]#30天写作挑战#Tcache Attack原理学习
ubuntu 18.04 下测试
源码看不动,说一下通过实验得到的:
同一大小的 chunk free 之后前 7 个会放到一个 tcache 链表里面,不同大小的放在不同的链表中

最大能放 0x408 的,再大就要按照原本的那样放到 unsortedbin 中了

程序再次申请内存块的时候首先判断在 tchche 中是否存在,如果存在的话会先从 tcache 中拿
gcc -g tcache_dup.c
运行之后的结果:

一开始申请了 0x8 大小的 chunk,后来 free了两次

然后再去申请的话也会申请这俩在 tcache 中的,所以后面输出的 malloc 的地址还是一样的
首先取了一个数组

然后把数组的 index1 改成了 0x40(chunk 的大小)

然后把数组的 index2 的地址赋给了 a,之后去 free a,再去申请回来的话就会把 a 申请回来,这样就申请了 fake chunks[2] 那里

程序首先定义了一个变量,我们想要做的就是让程序 malloc 到变量那里
malloc 两个 chunk,然后 free 掉,这时候链表及内存布局是这样的


然后把 b 的 fd 指针改成那个变量地址

这时候 tcache 的链表是这样的

[培训]科锐逆向工程师培训第53期2025年7月8日开班!
最后于 2020-9-8 12:09
被yichen115编辑
,原因: 加参考链接