内核层CS段描述符信息

双机调试

查看寄存器信息命令:r


段寄存器结构如下:

代码段寄存器 cs = 0008 = 1000B  -->  索引:1,    TI:00,   RPL:0

查看GDT表:

kd> r gdtr
gdtr=80b95000
kd> dq 80b95000
80b95000  00000000`00000000 00cf9b00`0000ffff
80b95010  00cf9300`0000ffff 00cffa00`0000ffff
80b95020  00cff300`0000ffff 80008b1e`400020ab
80b95030  834093f7`fc003748 0040f200`00000fff
80b95040  0000f200`0400ffff 00000000`00000000
80b95050  830089f7`d0000068 830089f7`d0680068
80b95060  00000000`00000000 00000000`00000000
80b95070  800092b9`500003ff 00000000`00000000





根据索引找到对应的代码段的描述符:00cf9b00`0000ffff

Base G D L AVL LIMIT P DPL S TYPE Base
  1 1 0 0   1 00 1 1011  
00               c   f           9 b 00
Base LIMIT
0000 ffff
段基址:0000 0000
段大小:G为1 所以  FFFFF x 4KB  也就是4GB
默认操作数大小:D位为1,所以默认操作数大小以及默认寻址大小就是32位
64位代码段标志L位:0表示否
DPL:说明访问这个段,需要0环权限
S:为1,说明这是代码段或者数据段
TYPE:1(代码段)  0(非一致性代码段)  1(可读的)  1(此段已经被访问过了)
从加粗部分来看的话,这个描述描述的是一个0环代码段。



猜你喜欢

转载自blog.csdn.net/yusakul/article/details/80724748