windows堆的数据结构及管理

windows 堆的数据结构及管理策略

  

摘   要: 详细讲解windows堆的数据结构及管理策略及常见堆破坏问题

关键词: 前堆  后堆 堆分配  堆释放 堆合并 堆调试

一、引言

      最近常看到有人问堆栈的区别是什么?那个在分配内存的效率高?为什么?另外在学习exploit的时候堆栈内部实现原理也是基础。故总结此文,以便日后学习。

二、堆简介

      堆是一种内存的管理器,c++中用new/delete,c中用malloc/free函数来分配和释放内存。当我们无法预知所需要的内存的大小的时候,所需要的内存无法在栈中得到满足的时候,我们都要使用到堆。初堆可以实现动态内存的分配与释放外,c运行时,虚拟内存管理器及其他形式的私有内存管理器也可以。但他们的根本都是windows虚拟内存管理器。

     当一个进程启动的时候会有默认的进程堆被动态的创建,虽有一些进程使用这个默认的进程堆但是大多数使用的还是C运行时堆(new /delete malloc/free等)来满足对内存的需要。

     windows的堆管理器可以进一步划分为前堆和后堆分配器。具体见堆的分配。

三、堆栈的区别

      

四、堆分配

五、堆释放

六、堆合并

七、堆调试

八、常见的堆破坏

九、堆溢出的利用

十、总结

十一、参考资料

[1]. Oday 安全:软件分析技术  电子工业出版社出版  failwest编著

[2].Advanced Windows Debugging 聂雪军 等译

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值