首页
社区
课程
招聘
[求助]问大家一个堆中快表的问题
2014-4-2 21:21 1871

[求助]问大家一个堆中快表的问题

2014-4-2 21:21
1871
正在学《0day安全(第二版)》这本书,现在看到堆这一章,空表的内容已经掌握,但是对于快表有以下几个问题不明白,希望大牛们指点。

1.书上说快表和空表的组织结构类似(p148),只是其中的堆块按照单链表组织。但是空表只有8个字节,而书上的快表结构图显示每个快表有48个字节,每一个都为:
00 00 00 00 | 00 00 00 00 | 04 00 00 01 | 00 00 00 00
00 00 00 00 | 00 00 00 00 | 00 00 00 00 | 00 00 00 00
00 00 00 00 | 00 00 00 00 | 00 00 00 00 | 00 00 00 00      (刚初始化后)
      还有就是这里面的每个字节都表示什么?我只知道前4个指向堆块。

2.书上说使用快表之后,偏移0x0688不再是尾块了,而这个位置被快表霸占(p161)。我查看内存后发现这个位置确实变成了上述结构,但是书上标明的Lookaside[0]却在偏移0x06B8处,相差刚好尾48个字节,请问Lookaside[0]上边的这段是什么?如下:
00360688 :00 00 00 00 | 00 00 00 00 | 04 00 00 01 | 00 00 00 00
00360698 :00 00 00 00 | 00 00 00 00 | 00 00 00 00 | 00 00 00 00
003606A8 :00 00 00 00 | 00 00 00 00 | 00 00 00 00 | 00 00 00 00

003606B8 :00 00 00 00 | 00 00 00 00 | 04 00 00 01 | 00 00 00 00
003606C8 :00 00 00 00 | 00 00 00 00 | 00 00 00 00 | 00 00 00 00
003606D8 :00 00 00 00 | 00 00 00 00 | 00 00 00 00 | 00 00 00 00
(书上这段为Lookaside[0])

003606E8 :00 00 00 00 | 00 00 00 00 | 04 00 00 01 | 00 00 00 00
003606F8 :00 00 00 00 | 00 00 00 00 | 00 00 00 00 | 00 00 00 00
00360708 :00 00 00 00 | 00 00 00 00 | 00 00 00 00 | 00 00 00 00
(书上这段为Lookaside[1])

阿里云助力开发者!2核2G 3M带宽不限流量!6.18限时价,开 发者可享99元/年,续费同价!

收藏
点赞0
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回