
Glibc堆管理
文章平均质量分 91
加号减减号
这个作者很懒,什么都没留下…
展开
-
Glibc:浅谈 free() 函数具体实现
简介源代码__libc_free_int_free__libc_free 分析0x00 - free 空指针则直接返回0x01 - 非 mmap 分配的内存由 _int_free 负责释放0x02 - 由 mmap 分配的内存由 munmap_chunk 负责释放_int_free 分析0x000x01 - p 是否应该插入 fastbin0x02 - p 通过...原创 2018-02-22 12:41:08 · 5934 阅读 · 2 评论 -
Glibc:浅谈 malloc_consolidate() 函数具体实现
简介源代码分析0x00 - 堆未初始化则初始化0x01 - 堆已初始化则清空 fastbin总结简介malloc_consolidate() 函数是定义在 malloc.c 中的一个函数,用于将 fastbin 中的空闲 chunk 合并整理到 unsorted_bin 中以及进行初始化堆的工作,在 malloc() 以及 free() 中均有可能调用 m...原创 2018-02-22 12:46:21 · 15817 阅读 · 3 评论 -
Glibc:浅谈 unlink 宏的具体实现
简介源代码分析0x000x01 - 设置相邻 chunk 的 fd 或 bk 指针0x02 - 特别处理 largebin 的 fd_nextsize 和 bk_nextsize 指针总结简介unlink() 是一个宏,用于将某一个空闲 chunk 从其所处的 bin 中脱链。在 malloc_consolidate() 函数中将 fastbin 中的...原创 2018-02-22 12:54:34 · 1694 阅读 · 1 评论 -
Glibc:浅谈 malloc() 函数具体实现
简介源代码__libc_malloc()_int_malloc()__libc_malloc() 分析参数__malloc_hook 全局钩子ptmalloc_init转入 _int_malloc()_int_malloc 分析计算 chunk size是否命中 fastbins是否命中 smallbins非 smallbins 则转入 malloc_co...原创 2018-05-08 20:36:18 · 8608 阅读 · 2 评论