数据段的权限检查
参考如下代码:
比如当前程序处于0环,也就是说CPL=0
Mov ax,000B //1011 RPL = 3
Mov ds,ax //ax指向的段描述符的DPL = 0
数据段的权限检查:
CPL <= DPL 并且 RPL <= DPL (数值上的比较)
注意:
代码段和系统段描述符中的检查方式并不一样,具体参加后面课程.
总结:
CPL CPU当前的权限级别
DPL 如果你想访问我,你应该...
0x001 读取GDT表 (删除部分 00000000 )
0: kd> dq 8003f000 l 3ff
8003f000 00000000`00000000 00cf9b00`0000ffff
8003f010 00cf9300`0000ffff 00cffb00`0000ffff
8003f020 00cff300`0000ffff 80008b04`200020ab
8003f030 ffc093df`f0000001 0040f300`00000fff
8003f040 0000f200`040...
根据段描述符进行的拆分
S位
S = 1 代码段或者数据段描述符
S = 0 系统段描述符
S=1的TYPE域作用
A 访问位,表示该位最后一次被操作系统清零后,该段是否被访问过.每当处理器将该段选择符置入某个段寄存器时,就将该位置1.
W 是否可写
E 扩展方向
A 访问位
R 可读位
C 一致位
C = 1 一致代码段
C = 0 非一致代码段
S=0 的时候 系统段的分类
直接...
0x001 搭建过程
vmware上安装干净版本的xp3, [记住一定要干净版本的, 我昨天用了我以前的一个xp !process命令一直不能使用]
把VirtualKD 的target目录 复制到 虚拟机中
运行
直接确定即可
本机打开:
配置调试器(找到windbg的位置,点击确定即可):
0x002 配置 符号表
重启虚拟机,运行, 会自动打开windbg
运行 g 命令
接着下载符号: S...
每个程序都有自己的LDT,但是同一台计算机上的所有程序共享一个GDT。LDT描述局部于每个程序的段,包括其代码、数据、堆栈等。GDT描述系统段,包括操作系统本身。
①全局描述符表GDT(Global Descriptor Table)在整个系统中,全局描述符表GDT只有一张(一个处理器对应一个GDT),GDT可以被放在内存的任何位置,但CPU必须知道GDT的入口,也就是基地址放在哪里,Intel的设计者门提供了一个寄存器GDTR用来存放GDT的入口地址,程序员将GDT设定在内存中某个位置之后,可以通过LGDT指令将GDT的入口地址装入此积存器,从此以后,CPU就根据此寄存器中的内容作为G...
先记住几个结构
1、段寄存器的结构(96位)
Selector : 显示 16位 选择子
Attribute: 隐藏 属性16位
Base: 32位
Limit: 32位
2 段描述符 (GDT表)
r gdtr
r gdtl
一共64位,记住每个结构
3 段选择子
16位
购买请联系QQ: 770612230 项目的目录,收集的 中级班(上)注:必须掌握基础课程全部内容才可以入学,可申请免费重修一次!1、开班时间:拍下付款后请及时联系客服QQ2、课程内容:保护模式、系统调用、进程与线程、驱动开发、句柄表、APC机制3、课程时间:3个月4、讲师:海东老师5、费用:698元高级会员费+4499元线上辅导班费用(线上教学,不可退款)6、上课时间:周一至周五21:00-22:307、上课方式:好视通网络教室(支持PC端,安卓手机端,苹果手机端,平板和智能电视)8、教学形式:上课前先看在线视频,提前做练习。上课,老师讲解知识点,答疑解惑。学生轮流课堂做实验。9...