码迷,mamicode.com
首页 > 其他好文 > 详细

堆 | fastbin(一)

时间:2020-06-15 15:31:06      阅读:48      评论:0      收藏:0      [点我收藏+]

标签:查看   32位   libc   代码分析   图片   malloc   内存管理   flags   hunk   

ctf-wiki | 栗子1

gcc -g -o test test.c
gdb ./test
list #回车 查看源代码 一次显示10源代码
b 11 #在11行下断点

技术图片

技术图片

对于chunk结构的解析

技术图片

逐次释放堆,观察对应的内存变化
释放chunk1,内存无变化
接着释放chunk2,内存映射如下:

技术图片

最后释放chunk3,内存映射如下

技术图片

技术图片

技术图片
#ifndef 防止多重定义 ,32位平台下的size_t是4字节,64位size_t是8字节,由对于对齐方式是字节数的2倍,我的理就是一行16个字节,由于实验是在64位下做的。

技术图片

技术图片

Fastbins[idx=2, size=0x30,ptr=0x602080]
===>Chunk(fd=0x602040, size=0x40, flags=PREV_INUSE)
===>Chunk(fd=0x602000, size=0x40, flags=PREV_INUSE)
===>Chunk(fd=0x000000, size=0x40, flags=PREV_INUSE) 

资料参考:

ctf-wiki:Fastbin Attack
Glibc内存管理 Ptmalloc2源代码分析 华庭

堆 | fastbin(一)

标签:查看   32位   libc   代码分析   图片   malloc   内存管理   flags   hunk   

原文地址:https://www.cnblogs.com/zuoanfengxi/p/13123998.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!