堆机制利用之fastbin

堆机制利用之fastbin

前半部分:基于libc2.23(无tcache)

堆机制(fastbin等)

想要了解堆的机制利用方法必须要先了解堆的基本机制以及结构

目前主要使用的内存管理库是ptmalloc,而在ptmalloc中,用户请求的空间由名为chunk的数据结构表示

下面就是一个标准的chunk结构

img

该chunk中,**prev_size参数为前一chunk(如果未被使用)的大小,size参数为该chunk的大小,而P参数(pre_insue)为标志位,标志前一个chunk的使用情况。**而上述的三个参数组成了chunk的header部分,该部分一般不会被用户直接访问

用户能够访问的空间为mem部分,如果一个chunk正被使用,则data部分为用户储存内容的空间,此时fd、bk指针并无实际意义如果一个chunk未被使用,则mem部分的fd与bk储存的分别是上一个和下一个未被使用的chunk的地址。而这样的一个由未被使用的chunk组成的链表被称为bin。

一般而言,不同大小的free chunk会被分类到不同的bin中,**而bin的类型可以被分为fast bin, small bin,large b

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值