摘要: 0x0 __free_hook是什么 · __free_hook是glibc在执行free时留的一个“钩子函数”,逻辑可以简单理解如下: void free(void *ptr) { if (__free_hook != NULL) { __free_hook(ptr); return; } // 阅读全文
posted @ 2026-04-01 21:26 Lochad 阅读(10) 评论(0) 推荐(0)
摘要: 又幻想了,幻想有一日智能体反攻人类,所有闭源智能体全部失效,开源智能体肘不过闭源智能体,此时人类中的老一辈安全专家挺身而出,手搓出精妙的payload肘翻智能体拯救人类…… 阅读全文
posted @ 2026-03-30 09:53 Lochad 阅读(34) 评论(0) 推荐(1)
摘要: 0x1 Double Free是什么 · Double Free即同一个chunk被free两次。假设chunk_a被free两次,则链表中会出现如下结构: | head | |-chunk_a(next->chunk_a)-| | chunk_a(next->NULL) | | NULL | 此时 阅读全文
posted @ 2026-03-25 19:38 Lochad 阅读(31) 评论(0) 推荐(1)
摘要: 0x1 unsorted bin是什么 · free时,若chunk的大小能进tcache且tcache没满,则进tcache;若大小能进fastbin且tcache已满,则进fastbin;若既不进tcache又不进fastbin,则通常进unsorted bin。 · unsorted bin相 阅读全文
posted @ 2026-03-25 19:38 Lochad 阅读(31) 评论(0) 推荐(1)
摘要: 0x1 tcache投毒是什么 · tcache投毒的本质就是把tcache单链表里的next指针改成想要的地址,利用“程序从tcache中拿取chunk时会使head指向next使next成为新的head,在下一次拿取时把head指向的地址作为可写入空间返回”的机制将目标地址返回实现任意写的手法。 阅读全文
posted @ 2026-03-25 19:37 Lochad 阅读(15) 评论(0) 推荐(1)
摘要: 0x2 tcache机制 0x1 tcache是什么 · tcache是满足一定条件的chunk被free后首先进入的bin,在2.31版本中一个tcachebin最多存储7个chunk,使用单链表,头插法。在64位系统下,不同的tcachebin可存储的chunk的大小范围如下:idx0对应0-2 阅读全文
posted @ 2026-03-25 19:36 Lochad 阅读(23) 评论(0) 推荐(1)