532628838
圣骑士
圣骑士
  • 注册日期2011-06-10
  • 发帖数98
  • QQ
  • 火币517枚
  • 粉丝77
  • 关注39
阅读:3083回复:0

利用段间转移指令JMP实现任务内无特权级的转移

楼主#
更多 发布于:2011-08-01 16:49
 在本实例中进入保护方式后,特权级是0。通过如下段间直接转移指令实现从代码段K到代码段L的转移:  
    JUMP16    CodeL_Sel,Virtual2
    其中,选择子CodeL_Sel是对应代码段L的描述符的选择子。该描述符在LDT中,所以选择子中的描述符表指示位TI为1。描述符特权级是0,表示对应代码段的特权级是0,选择子中的请求特权级RPL也是0。目标代码段不是一致代码段,所以在CPL=DPL,RPL<=DPL的情况下,顺利进行相同特权级的转移:目标代码段的选择子CodeL_Sel被装入CS,对应描述符中的信息被装入高速缓冲寄存器中,偏移量Virtual2被装入指令指针寄存器。由于是16位代码段,所以偏移用16位表示。  
类似地,通过如下段间直接转移指令实现从代码段L转移到代码段K:  
    JUMP16    CodeK_Sel,Virtual3
   其中,选择子CodeK_Sel是对应代码段K的描述符选择子。由于描述符在GDT中,所以选择子中的TI位是0。


喜欢0 评分0
游客

返回顶部