首页
社区
课程
招聘
[求助]为什么HeapCreate()创建堆的开始地址是00520000?
发表于: 2008-11-18 11:44 8652

[求助]为什么HeapCreate()创建堆的开始地址是00520000?

2008-11-18 11:44
8652
在Ch6(堆溢出利用)中图6.2.5,标明:
    Address    Size
    ...         ...
   00520000   00001000 ;实验中HeapCreate()所创建的堆(原书注释)
    ...         ...

Q1:如何知道00520000是实验中HeapCreate所创建的堆?
Q2:当P151页的程序运行到_asm int3时,在图6.2.6上显示:
   Base                Block         Size      Description
      ...               ...           ...          ...
   00520000           005206B8        16          used
      ...               ...           ...          ...

   可是在我做这个实验中,00520000处的Description一直为"Free"状态。

请问这是什么原因?谢谢!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 2056
活跃值: (13)
能力值: ( LV13,RANK:250 )
在线值:
发帖
回帖
粉丝
2
1 HeapCreate的返回值。
2 00520000是整个堆区的起始,包含了多个堆块,在多次调用HeapAlloc之后就会出现书中所显示的状态。
2008-11-18 14:23
0
雪    币: 209
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
1.00520000这个值应该和具体环境有关?
  我在电脑得到的是00390000,所以有此一问

2.我再看一看

谢谢!
2008-11-18 22:41
0
雪    币: 2056
活跃值: (13)
能力值: ( LV13,RANK:250 )
在线值:
发帖
回帖
粉丝
4
返回值的确和环境有关,这个不必强求一样。关键是要从这个例子中学习到堆的结构及Exploit思路。
2008-11-19 12:12
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
用WIN NT内核,应该都一样的!
2008-12-18 14:16
0
雪    币: 215
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我做的也是0x00390000
和平台环境有关的,作者用的是win2000
2009-2-12 20:25
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我想你大概没有注意到P154下边,6.2.3识别堆表的第二段。
2009-3-20 22:22
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
其实我也在疑惑这个问题
后来才发现 在不同的环境下 堆得地址也不一样啊 得看 EAX返回值是多少
2009-7-7 10:54
0
游客
登录 | 注册 方可回帖
返回
//