接着上一篇“内核层CS段描述符信息”https://blog.csdn.net/yusakul/article/details/80724748
Windbg命令窗口输入命令:g,被调试系统继续运行...
进入系统后,我们运行一个INT.exe,作用:使被调试系统产生中断异常,其源码如下
// INT3.cpp: 定义控制台应用程序的入口点。
//
#include "stdafx.h"
int main()
{
__asm int 3;
return 0;
}
输入r命令查看寄存器信息:
代码段寄存器 cs = 001b = 0001 1011B --> 索引:11, TI:01, RPL:1
查看GDT表:
根据索引为3,找到相应描述符:00cffb00`0000ffff
Base | G | D | L | AVL | LIMIT | P | DPL | S | TYPE | Base |
1 | 1 | 0 | 0 | 1 | 11 | 1 | 1011 | |||
00 | c | f | f | b | 00 |
Base | LIMIT |
0000 | ffff |
段基址:0000 0000
段大小:G为1 所以 FFFFF x 4KB 也就是4GB
默认操作数大小:D位为1,所以默认操作数大小以及默认寻址大小就是32位
64位代码段标志L位:0表示否
DPL:说明访问这个段,需要3环权限
S:为1,说明这是代码段或者数据段
TYPE:1(代码段) 0(非一致性代码段) 1(可读的) 1(此段已经被访问过了)
从加粗部分来看的话,这个描述描述的是一个3环代码段。