Windows内核基础知识-2-段描述符

Sna1lGo 2021-08-24 原文


Windows内核基础知识-2-段描述符


Windows内核基础知识-2-段描述符

 

 

比如:

ES 002B 0(FFFFFFFF)

意思就是es段寄存器,段选择子/段选择符 为002B,

起始地址base为0,

限制范围Limit地址最大能寻找的长度为:FFFFFFFF,表示的是一个范围。从.base到最后最长的地址的相对值。

简单来说就是偏移地址的范围。地址=段寄存器基址base+偏移地址,这个limit可以理解为偏移地址的范围

 

 

 

可以看到所有的段寄存器除了FS别的都是一样的。

 

获取段寄存器的信息:

如果你正常在调试,用什么WinDbg这种工具,就只能看到的是段选择子,不会有后面的什么基址,偏移地址范围这种东西。

 

 

段寄存器这么多信息存放在了哪里?

破案了,段寄存器的一堆属性都存放在了一张表里,可以理解为是一个数组,一个QWORD类型数组

通过段选择子来获取段寄存器信息

只有段选择子是公布出来了的,所以直接通过它来找信息了。

段选择子的结构体:

 

 

RPL:请求特权级别(Request Privilege Level),就是请求访问者所使用的权限级别。

TI:这个标志位决定要去什么表里查询数据:0表示GDT表,1表示LDT表

GDT表:可以认为是一个数组,元素为QWORD(64位)大小

Index:数据所在表的索引

 

例子:

这里来获取一下es的内容

 

 

es = 23 ==00100 0 11

拆下来就是 :

RPL=11

TI=0

索引值=00100 = (D)4(十进制的4)

 

gtd表的首地址保存在gdtr寄存器里面,同理ldt也是。gdtr和ldtr并不是真正是寄存器,只是一个虚拟的。

 

在WinDbg里面查看gdtr的内容:

 

 

查看索引为4的内容(索引为4就是第五个):

 

 

这个东西对应的内容就是段描述符了,所有的段寄存器内容都在里面。

 

版权声明:本文为Sna1lGo原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/Sna1lGo/p/15181448.html

Windows内核基础知识-2-段描述符的更多相关文章

  1. Windows内核基础知识-1-段寄存器

    Windows内核基础知识-1-段寄存器 Windows内核基础知识-1-段寄存器 学过汇编的应该都知道段寄存 […]...

随机推荐

  1. 远程桌面时服务器怎样可访问本地文件

    远程桌面时点击“显示选项”——选择“本地资源”——“本地设备和资源”——”详细信息”——勾上想要访问的盘...

  2. NVisionXRFBXConverter(Beta版)实践课程

    一、前言 NVisionXR引擎使用的模型格式为.mesh(具体请看NVisionXR引擎基本介绍:http: […]...

  3. Hadoop介绍篇

    Hadoop详解1、前言对于初次接触Hadoop的小伙伴来说,Hadoop是一个很陌生的东西,尤其是Hadoop与大数据之间的关联,写这篇文章之前,我也有许多关于Hadoop与大数据的疑惑,接下来让我带着和大家共同的疑惑去探索Hado...

  4. DIY播放器(使用MediaPlayer)

        代码   1 ///the most important thing is to reference  […]...

  5. Gradle构建CAS4.2.7爬坑指南

    1. Gradle3.0+ 2. JDK1.8+ 3. 创建环境变量 JAVA_HOME 路径指向JVM1.8 […]...

  6. (转发)什么是光模块的DDM、DOM和RGD功能? – Nelson12138

    (转发)什么是光模块的DDM、DOM和RGD功能? 什么是DDM? DDM是数字诊断监控,其全称是Digita […]...

  7. HttpClientFactory-向外请求的最佳

    简介 它的组件包是Microsoft.Extensions.Http 复原HttpClient带来的问题 Ht […]...

  8. 大数据知识梳理(Hadoop、HDFS)(整理中。。。)

    大数据知识梳理(Hadoop、HDFS)(更新中。。。) 第1讲 大数据概述1.1 大数据时代1.2 大数据概 […]...

展开目录

目录导航