滴水逆向保护模式(段)

在这里插入图片描述
滴水逆向保护模式(段)_第1张图片
滴水逆向保护模式(段)_第2张图片
滴水逆向保护模式(段)_第3张图片

段寄存器结构

滴水逆向保护模式(段)_第4张图片
滴水逆向保护模式(段)_第5张图片
段寄存器共有96位,可见的只有16位,读取时也只能读取16位
滴水逆向保护模式(段)_第6张图片
滴水逆向保护模式(段)_第7张图片
滴水逆向保护模式(段)_第8张图片
滴水逆向保护模式(段)_第9张图片

003段寄存器属性探测

滴水逆向保护模式(段)_第10张图片
滴水逆向保护模式(段)_第11张图片
滴水逆向保护模式(段)_第12张图片
滴水逆向保护模式(段)_第13张图片
滴水逆向保护模式(段)_第14张图片

004段描述符与段选择子

滴水逆向保护模式(段)_第15张图片

滴水逆向保护模式(段)_第16张图片
滴水逆向保护模式(段)_第17张图片
滴水逆向保护模式(段)_第18张图片

005段描述符属性

滴水逆向保护模式(段)_第19张图片
滴水逆向保护模式(段)_第20张图片
段寄存器的attribute对应段描述符的8-23位,Base由高四字节24-31,0-7和低四字节16-31位构成;Limit由高四字节16-19和低四字节的0-15位构成
Limit一共20位,转换为16进制为FFFFF,看G位,如果G位为0,单位为字节, 最大值为000FFFFF;当G位为1,单位为4KB,从0开始算,0到4095,转化为十六进制为FFF,最大值为FFFFFFFF
滴水逆向保护模式(段)_第21张图片
在这里插入图片描述
滴水逆向保护模式(段)_第22张图片
段描述符的第五位为9或者f才是代码段或者数据段,其他的一定不是代码段或数据段
TYPE域的第11位为0是数据段,为1是代码段
段描述符的第六位大于8一定是代码段,反之小于8一定为数据段
数据段中的A为是否访问过,W为是否可写,E为拓展位,0为向上拓展,1为向下拓展
滴水逆向保护模式(段)_第23张图片
Base+Limit为有效地址,下图左面红色部分为向上拓展地址有效,向下拓展为相反方向
滴水逆向保护模式(段)_第24张图片
滴水逆向保护模式(段)_第25张图片
滴水逆向保护模式(段)_第26张图片
***DB位 ***
滴水逆向保护模式(段)_第27张图片
滴水逆向保护模式(段)_第28张图片

008段权限检查

滴水逆向保护模式(段)_第29张图片
滴水逆向保护模式(段)_第30张图片
滴水逆向保护模式(段)_第31张图片
滴水逆向保护模式(段)_第32张图片
滴水逆向保护模式(段)_第33张图片
滴水逆向保护模式(段)_第34张图片
滴水逆向保护模式(段)_第35张图片

009代码跨段跳转流程

滴水逆向保护模式(段)_第36张图片
滴水逆向保护模式(段)_第37张图片
滴水逆向保护模式(段)_第38张图片
滴水逆向保护模式(段)_第39张图片
操作系统提供通用的功能代码,并不会对系统内核数据造成破坏,可以让应用层直接访问,可以用一致代码段来修饰
不希望应用层直接访问的数据用非一致代码段描述
滴水逆向保护模式(段)_第40张图片
滴水逆向保护模式(段)_第41张图片
滴水逆向保护模式(段)_第42张图片
在这里插入图片描述

010代码跨段跳转实验

滴水逆向保护模式(段)_第43张图片
滴水逆向保护模式(段)_第44张图片
滴水逆向保护模式(段)_第45张图片
跳转到ntdll.dll,异常
滴水逆向保护模式(段)_第46张图片
成功,一致代码段允许低权限访问高权限代码段
滴水逆向保护模式(段)_第47张图片
滴水逆向保护模式(段)_第48张图片

011长调用与短调用

滴水逆向保护模式(段)_第49张图片
滴水逆向保护模式(段)_第50张图片
滴水逆向保护模式(段)_第51张图片
长调用的段选择符一定是调用门
滴水逆向保护模式(段)_第52张图片
滴水逆向保护模式(段)_第53张图片
滴水逆向保护模式(段)_第54张图片
滴水逆向保护模式(段)_第55张图片

012调用门

滴水逆向保护模式(段)_第56张图片
滴水逆向保护模式(段)_第57张图片
滴水逆向保护模式(段)_第58张图片
门描述符中的段选择子指向的才是要跳转的存在哪个段
滴水逆向保护模式(段)_第59张图片
段选择子0008为0环的代码段
在这里插入图片描述
滴水逆向保护模式(段)_第60张图片
通过调用门提权已经是0环权限
滴水逆向保护模式(段)_第61张图片
在这里插入图片描述
滴水逆向保护模式(段)_第62张图片
滴水逆向保护模式(段)_第63张图片
滴水逆向保护模式(段)_第64张图片
滴水逆向保护模式(段)_第65张图片

014中断门

滴水逆向保护模式(段)_第66张图片
在这里插入图片描述
滴水逆向保护模式(段)_第67张图片
滴水逆向保护模式(段)_第68张图片
滴水逆向保护模式(段)_第69张图片

015陷阱门

滴水逆向保护模式(段)_第70张图片
IF位为eflag的第九位,如果为0不在接收可屏蔽中断
程序在运行中按键盘会响应,硬件向CPU发送命令,可屏蔽中断,受IF位影响
断电为不可屏蔽中断
滴水逆向保护模式(段)_第71张图片

016任务段

滴水逆向保护模式(段)_第72张图片
滴水逆向保护模式(段)_第73张图片
intel设计初衷是使用TSS实现任务切换,但操作系统不是这么做的
滴水逆向保护模式(段)_第74张图片
TR寄存器的值从GDT中TSS段描述符中加载得到,TR寄存器中存在TSS的信息
系统描述符TYPE为9或B时是TSS段描述符
TYPE为9时没有加载到TR寄存器中,为B时已经加载到TR寄存器中
滴水逆向保护模式(段)_第75张图片
滴水逆向保护模式(段)_第76张图片
滴水逆向保护模式(段)_第77张图片
滴水逆向保护模式(段)_第78张图片

link为之前104个字节的段选择子,当切换时硬件自动填充
Cr3和eip还有esp必须要填
滴水逆向保护模式(段)_第79张图片
TSS段描述符的G位为0,因为TSS以字节为单位
滴水逆向保护模式(段)_第80张图片
滴水逆向保护模式(段)_第81张图片

018 任务门

滴水逆向保护模式(段)_第82张图片
滴水逆向保护模式(段)_第83张图片
任务门 跨表,任务门在idt表中,TSS段描述符在GDT表中
滴水逆向保护模式(段)_第84张图片
滴水逆向保护模式(段)_第85张图片

你可能感兴趣的:(保护模式)