首页
社区
课程
招聘
[求助]windows内存管理的一个疑问
发表于: 2012-5-31 11:10 4341

[求助]windows内存管理的一个疑问

2012-5-31 11:10
4341
       到目前为止看了很多的windows内核方面的书籍,但仍然感觉未曾入门,很多知识都是懵懵懂懂,好像明白,但实际不明白,也许和实际工作当中没用到这些知识有点关系吧。
     一直有个疑问,应该是很低级的问题,但我就是一直都没弄明白,希望高手指点下,用OD调试应用软件时,cs寄存器的值始终是0x1B,也就是说使用的是GDT中索引号为0x18的段,而此段的基址是0,范围是0xFFFFFFFF,也就是说此段覆盖了整个内存空间,而访问此段要求的权限是3,那么为什么在用户模式下就访问不到0x80000000以上的地址空间呢,实在不解,也许我落下了哪个知识点,所以百思不得其解。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 128
活跃值: (111)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
还有页保护啊~
2012-5-31 11:49
0
雪    币: 176
活跃值: (201)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
能不能具体一点呢??
2012-5-31 12:57
0
雪    币: 176
活跃值: (201)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
明白了,多谢shuizhilan提醒,对内核空间的保护不是由分段机制实现的,
而是通过页目录项的U/S位控制的,地址在0x80000000以上的页目录项的U/S位
为0,这样用户态的程序就无法访问0x80000000以上的地址空间了,
不知理解是否正确。
2012-5-31 16:06
0
游客
登录 | 注册 方可回帖
返回
//