12558网页游戏私服论坛

 找回密码
 立即注册
游戏开服表 申请开服
游戏名称 游戏描述 开服状态 游戏福利 运营商 游戏链接
攻城掠地-仿官 全新玩法,觉醒武将,觉醒技能 每周新区 经典复古版本,长久稳定 进入游戏
巅峰新版攻 攻城掠地公益服 攻城掠地SF 新兵种、新武将(兵种) 进入游戏
攻城掠地公 散人玩家的天堂 新开 进入游戏
改版攻城掠 上线即可国战PK 稳定新区 全新改版,功能强大 进入游戏
少年江山 高福利高爆率 刚开一秒 江湖水落潜蛟龙 进入游戏
太古封魔录 开服送10亿钻石 福利多多 不用充钱也可升级 进入游戏
神魔之道 签到送元宝 稳定开新区 送豪华签到奖励 进入游戏
神奇三国 统帅三军,招揽名将 免费玩新区 激情国战,征战四方 进入游戏
龙符 三日豪礼领到爽 天天开新区 助你征战无双 进入游戏
王者之师 免费领豪华奖励 免费玩新区 6元送6888元宝 进入游戏
查看: 325|回复: 0

保护模式笔记五 段权限检查

[复制链接]

49

主题

49

帖子

108

积分

实习版主

Rank: 7Rank: 7Rank: 7

积分
108
发表于 2021-5-8 00:07:16 | 显示全部楼层 |阅读模式
前言

所有掩护模式索引链接:掩护模式条记一 掩护模式介绍
先前学习了段描述符的布局,这次来增补段描述符布局中的DPL(特权等级)相干的内容
段权限检查

CPU权限分级

在增补段权限检查之前,要了解CPU的权限分级


  • 处理器的段掩护机订定义了RING0,RING1,RING2,RING3一共4个特权级别
  • 大多数现代操作体系将0级用于内核/可执行步伐,将3级用于应用步伐
  • 可用于级别n的任何资源也可用于级别0到n,因此特权级别是环
  • 当特权较低的进程实验访问特权较高的进程时,将向操作体系报告通例掩护错误非常
  • 8086中的实模式步伐在级别0(最高特权级别)上执行,而8086中的虚拟模式在级别3执行所有步伐
  • 多数现代x86内核仅使用两个特权级别,即RING0和RING3
RING0RING1RING2RING3通常用途内核特权代码、特权数据、特权栈特权代码、特权数据、特权栈应用步伐级别最高第二高第三高最低对应层内核层(内核态)应用层(用户态)内核层

在内核模式下,CPU可以执行其体系布局允许的任何操作。可以执行任何指令,启动任何I / O操作,访问任何内存地区,使用特权指令,控制停止、修改页表、访问设备等等
应用层

硬件会对CPU操作施加某些限制。通常,某些指令是不允许的(尤其是那些指令(包罗I / O操作)可能会改变呆板的全局状态),某些内存地区无法访问等。CPU的用户模式功能通常是这些指令的子集可以在内核模式下使用,但是在某些情况下,例如非本机体系布局的硬件仿真,它们可能与标准内核模式下的可用软件有显着差别
应用层切换内核层

应用步伐的代码运行在最低运行级别上ring3上,不能做受限操作
假如要做受限操作,比如要访问磁盘,写文件,那就要通过执行体系调用(函数),执行体系调用的时候,CPU的运行级别会发生从ring3到ring0的切换,并跳转到体系调用对应的内核代码位置执行,这样内核就为你完成了设备访问,完成之后再从ring0返回ring3。这个过程也称作用户态和内核态的切换
CPU权限分级的作用

RING设计的初志是将体系权限与步伐分离出来,使之可以或许让OS更好的管理当前体系资源,也使得体系更加稳定
举个很常见的例子:
普通的应用步伐瓦解一样寻常是步伐未响应大概停止运行,并不会影响体系的正常运行
但当驱动步伐出现题目后,动辄 BSOD(蓝屏死机)
判断步伐特权级别

了解了CPU的权限分级后,再来了解 怎样查看步伐处于几环
这涉及到了CPL(Current Privilege Level) :当前特权级别
CPL是段寄存器CS和SS段选择子的后两位
在掩护模式条记三 段描述符和段选择子中已经说明白段选择子的布局
IndexTIRPL含义索引表指示器请求特权等级全称IndexTable IndicatorRequested Privilege Level数据宽度13位1位2位对比可知,当段寄存器为CS和SS时,其段选择子的RPL就是CPL
通过OD附加应用步伐后查看其段寄存器:

段寄存器段选择子(Selector)二进制段选择子二进制RPL十进制RPLES230010 0011113CS1B0001 101111(CPL)3(CPL)SS230010 001111(CPL)3(CPL)DS230010 0011113FS3B0011 1011113根据CS和SS的段选择子可以得到CPL为3,印证了应用步伐的CPU权限分级为RING3
EPL(有效特权级别)

上面提到了CPL(当前特权级别)和RPL(请求特权级别)
所谓的有效特权级别EPL(Effective Privilege Level),顾名思义就是最终的确定可否执行的特权
EPL = max(RPL,CPL)
即 EPL 等于 RPL和CPL的最大值,EPL为RPL和CPL中较低的权限
DPL(描述符特权级别)

关于DPL,在掩护模式条记四 段描述符布局中已经略微说明白,现在展开细说
DPL的作用

DPL存储在段描述符中,规定了访问该段所需要的特权级别是什么;即 假如想要加载某个段描述符,就必须具备对应的特权级别
DPL权限检查

当加载一个段描述符时,首先CPU要判断其P位(有效位),假如该段描述符有效,则继续举行DPL权限检查

所谓的DPL权限检查 就是 <strong>判断 DPL是否满足:EPL=max(RPL,CPL)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
楼主热帖
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|12558网页游戏私服论坛 |网站地图

GMT+8, 2024-4-28 01:33 , Processed in 0.171875 second(s), 31 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表