遍历进程Heap

Windows Heap管理是细粒度的内存管理方式。这样做可以降低内存碎片,提高内存的利用率。每个进程在启动之初都会有一个默认的Heap,这个我们可以通过GetProcessHeap()返回Heap的句柄,其实这个句柄就是一款buffer。之后进行内存申请都是在这个上面进行的。具体的Heap的结构不怎么了解,初步的heap管理在win 95系统设计揭秘中介绍。这里就不详述了。

      这里需要介绍一些API,这些API用于遍历每个进程的Heap相关信息。

      _heapwalk() //c 中的本进程heap遍历,这个地下调用的是HeapWalk 

      HeapWalk() //也是本进程的

      GetProcessHeap(); //得到本进程默认heap地址

      GetProcessHeaps(); //得到本进程所有的Heap地址

      Heap32ListFirst(); //得到指定进程的Heap 信息

      Heap32ListNext()

      Heap32First() //得到每个heap stub 信息,保护地址,大小。。。

      Heap32Next()

      Toolhelp32ReadProcessMemory() //读取指定进程,指定内存

      还有很多对Heap进行操作的API,这里就不介绍了。

 

      遍历的方法和遍历进程、模块的方法一样。都是使用toolhelp的api。

 

 

 


  这里简单的写了枚举进程Heap的代码。具体的还需要充实一下。

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值