当前位置: 首页 > news >正文

段描述符属性测试

BASE: 段基址,由上图中的两部分(BASE 31-24 和 BASE 23-0)组成
G:LIMIT的单位,该位 0 表示单位是字节,1表示单位是 4KB
当G=0时,Limit的范围是0x00000000-0x000FFFFF,其中,段描述符的20位在低位,高位补0.
当G=1时,Limit的范围是0x00000FFF-0xFFFFFFFF,其中,段描述符的20位在高位,低位补F。
D/B: 该位为 0 表示这是一个 16 位的段,1 表示这是一个 32 位段
AVL: 该位是用户位,可以被用户自由使用
LIMIT: 段的界限,单位由 G 位决定。数值上(经过单位换算后的值)等于段的长度(字节)- 1。
P: 当P=1时,段描述符有效;当P=0时,段描述符无效。
DPL:段权限
S: 该位为 1 表示这是一个数据段或者代码段。为 0 表示这是一个系统段(比如调用门,中断门等)
TYPE: 根据 S 位的结果,再次对段类型进行细分。

通过windbg在GDT表中查找一个空缺位置通过eq指令(修改8字节数据)插入自己构建的短描述符

P位(present)

测试 有效位 第15位

P = 1:描述符有效

P = 0:描述符无效

当描述符无效时,任何尝试加载该描述符、访问该描述符对应的段间地址都会报错。

G位 (granularity)

假设显式Limit为0xFFFFF 情况下:

G == 0 粒度为(BYTE)(0xFFFFF + 1)*1 -1 0x000FFFFF(Limit最终大小)

G == 1 粒度为(BYTE)(0xFFFFF + 1)*4KB -1 0xFFFFFFFF(Limit最终大小)

G位影响Limit

S位(descriptor type)

描述符类型位。

S=0时,是系统段描述符

S=1时,是代码或数据段描述符

具体类型需要搭配type属性来判断。

Type域

决定了具体是代码段还是数据段描述符

当S为1时,type针对代码或数据段,具体含义如下:

数据段:

A位:数据段是否被访问过位,访问过为1,未访问过为0 段描述符是否被加载过

W位:数据段是否可写位,可写为1,不可写为0

E位:向下扩展位,0向上扩展:段寄存器.base+limit区域可访问。1向下扩展:除了base+limit以外的部分可访问。

代码段:

A位:代码段是否被访问过位,访问过为1,未访问过为0 段描述符是否被加载过

R位:代码段是否可读位,可读为1,不可读为0

C位:一致位。1:一致代码段。 0:非一致代码段 具体后文解释

DPL 当前段描述符的特权级别

S==1 作用域如下图

  • 数据段测试
    S==1时 <8 数据段(base~base+limist) (默认只读)
    • E= 扩展方向
      E==0 向上扩展 可访问Base~Base+limit 00000000~00000000 + 00000000 +FFFFFFFF || 00000000-FFFFFFFF
      //向下扩展并未使用
      E==1 向下扩展 可访问线长取决于DB
    • DB
      DB==1 有效地址范围是Base + limit ~ 1 - Base + limit +0xFFFFFFFF 4GB
      DB==0 有效地址范围是Base + limit ~ 1 - Base + limit +0XFFFFH 64K
    • W
      W=是否可写
    • A
      A=访问 (表示该位最后一次被操作系统清零后,该段是否被访问过,每当处理器将该段选择符置入某个段寄存器时,就将该位置为1)

  • 代码段测试
    S位为1 Type位≥8时候就是代码段
    C==一致位置
    C==0非一致代码段(跨段跳转同级权限)
    C==1非一致代码段(跨段跳转不同权限)
    R可读
    A=访问
  • S==0 作用域如下图

  • 系统段测试

S==0

TYPE: 0001 == 1 16位任务段(空闲)

TYPE: 0011 == 3 16位任务段(占用)

TYPE: 0100 == 4 16位调用门

TYPE: 0101 == 5 任务门

TYPE: 0110 == 6 16位中断门

TYPE: 0111 == 7 16位陷阱门

TYPE: 1001 == 9 32位任务段(空闲)

TYPE: 1011 == B 32位任务段(占用)

TYPE: 1100 == C 32位调用门

TYPE: 1110 == E 32位中断门

TYPE: 1111 == F 32位陷阱门

DB

  • 特权
    RPL请求特权级别
    DPL 特权级别
    CPL 当前特权级别
http://www.dtcms.com/a/577038.html

相关文章:

  • Ubuntu安装mysql5.7及常见错误问题
  • 第四届图像处理、计算机视觉与机器学习国际学术会议(ICICML 2025)
  • 网站后台编辑网站开发科普书
  • 单位加强网站建设专门做素菜的网站
  • Rust 在内存安全方面的设计方案的核心思想是“共享不可变,可变不共享”
  • NXP的GUI Guider开发LVGL
  • 《金仓KingbaseES vs 达梦DM:从迁移到运维的全维度TCO实测对比》
  • 【开题答辩全过程】以 基于Java的相机专卖网的设计与实现为例,包含答辩的问题和答案
  • 增量爬取策略:如何持续监控贝壳网最新成交数据
  • 400Hz 橡胶弹性体动刚度扫频试验系统指标
  • Weavefox 携手 GLM-4.6/4.5V 打造新一代智能厨房小助手
  • 如何建立网站后台wordpress 主题 翻译
  • 深入理解 Java 双亲委派机制:JVM 类加载体系全解析
  • Linux 进程间关系与守护进程
  • 基于 Cursor 的智能测试用例生成系统 - 项目介绍与实施指南
  • 时序数据库选型指南:从大数据视角切入,聚焦 Apache IoTDB
  • Node.js 环境变量配置实战:从入门到精通
  • 嵌入式系统入门指南
  • 一次丝滑的内网渗透拿下域控
  • 福建亨利建设集团有限公司网站互展科技网站建设
  • 网页变成PDF下载到本地
  • Spring Boot 3 + Flyway 全流程教程
  • 【洛谷】枚举专题-二进制枚举 从子集到矩阵问题,经典应用与实现
  • 网站信息可以wordpress可视化编辑器插件
  • 机器学习训练过程中回调函数常用的一些属性
  • [iOS] GCD - 线程与队列
  • DHTMLX Gantt v9.1 正式发布:聚焦易用性与灵活性,打造更高效的项目管理体验
  • 团队介绍网站模板网站开发学什么语言
  • [AI 应用平台] Dify 在金融、教育、医疗行业的典型应用场景
  • Kiro 安全最佳实践:守护代理式 IDE 的 “防火墙”