20181019栈+堆的学习

内容摘自《0day安全:软件漏洞分析(第二版)》

今天学习了shellcode部分和堆的基础知识。学得不是很顺利,有些实验我怀疑因为电脑版本问题,没有执行成功。

今天学习时间比较短,不开心,嗷嗷嗷,加油呀!

就简单地总结一下学到的关于堆的知识。

堆块:堆区的内存按不同大小组织成块,以堆块为单位进行标识,而不是传统的按字节标识。一个堆块包括两部分:块首和块身。块首是一个堆块头部的几个字节,用来标识这个堆块自身的信息;块身是紧跟在块首后面的部分,也是最终分配给用户使用的数据区。

堆表:堆表一般位于堆区的起始位置,用于索引堆区中所有堆块的重要信息,包括堆块的位置、堆块的大小、空闲还是占用等。对表的数据结构决定了整个堆区的组织方式。

空表:空闲堆块的块首中包含一对重要的指针,这对指针用于将空闲堆块组织成双向链表。按照堆块大小冉,空表总共被分为128条。

块表:块表是Windows用来加速堆块分配而采用的一种堆表。这类单向链表从来不会发生堆块合并(其中的空闲块块首被设置为占用态,用来防止堆块合并)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值