特权级3(调用门)
来源:互联网 发布:甩头狗什么软件 编辑:程序博客网 时间:2024/05/01 21:47
http://blog.chinaunix.net/u/15262/showart_294956.html
调用门的作用
gate简单来说可以想象成政府为人民提供的一个政府诉求中心,它可以集中收集人民对政府的要求和投诉,然后把这些诉求发给相关的政府部门来处理。
门提供了受保护的间接调用,为任务内的特权转移提供了安全可靠的方法。由于程序不可能进入具有更高优先级段中的任何位置。如果他们一定要进入,则只能使用调用门进入到调用门描述符指定的位置。而操作系统中定义了系统中的全部门,因此也就保证了所有的门只能进入几个受托的过程。这与试用软中断间接调用BIOS和DOS的功能调用所提供的机制相似。例如分配存储空间和I/O等操作。一旦通过调用门进入后,CPL发生改变,程序就完全进入了被调用代码的特权级。
调用门描述符的存储位置:
调用门描述符可以放在GDT、LDT中,但是不能放在IDT中。
调用们的访问规则:
调用门就是允许外层程序访问非一致代码时能够像一致代码那样使用。门的访问规则就像是对数据段的访问——使用调用门的代码的特权级要>=调用门的特权级才能使用该门,否则(调用程序的特权级比调用门中的特权级低)不允许访问。
例如,如果调用门描述符中的DPL=2,那么一个CPL=2的程序可以使用该门调用一个特权级为1的过程,但特权级为3的程序则不行。
通过调用门调用门描述符所对应的选择子中对应的代码需要对以下几个标志进行检查:
● CPL(当前特权级)
● 调用门选择子的RPL
● 调用门描述符的DPL
● 目标代码段的段描述符的DPL
规则对一致码和非一致码也有所不同(C=1/0)
处理器首先会处理调用进程和调用门之间的特权级检查,如果检验通过了处理器紧接着就用代码段描述符DPL和调用进程的CPL进行特权级检查。
从下表中可以看到,只有CALL指令可以使用调用门将进程控制转移到一个特权级更高(DPL<CPL)的非一致代码段,而对JMP指令使用调用门与否是一样的。
指令
访问门的权限
访问代码权限
CALL
CPL <= callgate.DPL
&&
RPL <= callgate.DPL
目标为一致代码段:destination. DPL <= CPL
目标为非一致代码段:destination.DPL <= CPL
JMP
CPL <= callgate.DPL
&&
RPL <= callgate.DPL
目标为一致代码段:DPL <= CPL
目标为非一致代码段:DPL = CPL
如果调用特权级更高的非一致目标代码段,CPL就降为目标代码段的DPL特权级,并且会发生栈切换。如果调用或者跳转到一个特权级更高的一致目标代码段,CPL不会发生变化,也不会发生栈切换。
我在想如果系统有定义的话,如果不嫌麻烦,你也完全可以从一个门调用另一个门中的程序(调用门1→调用门2→程序)。这样做不会让你得到任何额外的好处,你的权限也不会有任何提升。所以你完全可以直接调用门2去调用希望被调用的代码。
- 特权级3(调用门)
- 特权级3(调用门)
- 特权级3——调用门
- 特权级2(不通过调用门)
- 特权级和调用门
- 特权级和调用门
- 特权级和调用门
- 特权级和调用门
- (第三章 9)“调用门” 和 “利用调用门在高低特权级的转移”
- 调用门实战(4)----特权级转移实践
- 特权级变换中调用门的学习
- 保护的详尽意义:通过调用门转移特权级
- 特权级2——不通过调用门
- 通过retf和调用门实现特权级转换
- 【PM复习】特权级(3)
- 3.保护模式7-特权级转移(通过调用门转移目标段-无特权级转换)
- 3.保护模式7-特权级转移(通过调用门转移目标段-有特权级转换-理论)
- 3.保护模式7-特权级转移(通过调用门转移目标段-有特权级转换-进入ring3)
- 精美绝伦的KShong GHOST Windows7-Pro 2010幸福版
- 养成使用jQuery Sizzle选择器的良好习惯
- windows脚本(.bat): %~dp0 是什么意思
- 卓有成效的管理者——第4章 如何发挥人的长处
- struts2中i18n的设置
- 特权级3(调用门)
- lucene索引文件格式介绍
- SQL charindex的用法
- 组件里面绑定组件(itemRenderer)
- IIS6+resin3整合项目发布,支持多站点配置
- QQ、MSN个性签名
- 将Firefox变成黑客工具插件
- 源码分析--指针、指针与引用指针
- 分解质因数,生成素数表