Chinaunix首页 | 论坛 | 博客
  • 博客访问: 30796
  • 博文数量: 15
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 155
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-27 20:52
文章分类

全部博文(15)

文章存档

2010年(15)

我的朋友

分类: WINDOWS

2010-02-06 15:46:25

为了访问内存页面,x86处理依次执行以下检查:
●描述符(或段)检查:通常要访问全局描述符表GDT,并检查段描述符segment descriptor。段描述符包含一个称为描述符权限级别DPL的值。DPL包含了调用进程所需的环ring编号。若DPL需求低于进程的ring级别(有时称为当前权限界别CPL),则访问被拒接而且内存检查终止。
●页目录检查:对整个页表(即整个内存页范围)需要检查用户/超级用户位。若该位被设置为0,则只有超级用户程序(ring 0、1、2)能够访问该内存页范围。若调用进程不是超级用户,则内存检查终止。若该位为1,则任何程序都能访问该内存页范围。
●页面检查:对单个内存页面执行检查。若已经成功通过页目录检查,则对正在处理的单个页面进行页检查。类似于页目录,对每个页面都要检查一个用户/超级用户位。若该位为0,则只有超级用户程序(ring 0、1、2)能够访问该页;若该位为1,则任何程序都能访问该页。只有当进程能够到达并通过本检查并且没有任何禁止,它才能最终访问到内存页。

PS:摘录自《Windows内核的安全防护》
阅读(426) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~