zoukankan      html  css  js  c++  java
  • ret向外层返回

      1,ret指令先从堆栈弹出返回地址指针(48位的selector:offset)

            若selector的RPL等于当前的CPL,则直接开始向目标代码段转移的步骤,即执行jmp selector:offset

            若selector的RPL大于当前的CPL,则引起向外层返回。CPL的变化也必然对应着堆栈切换。

      2,内层堆栈弹掉先前堆栈切换时复制进来的参数,再弹出指向外层堆栈的指针并载入ss:esp,至此,堆栈切换到外层堆栈。

      3,外层堆栈弹掉先前压入的参数。

      4,检查数据段寄存器ds,es,fs,gs,以保证各自对应的段在外层cpl等级下仍是可访问,若不可访问,则装入空选择子避免保护空洞。


  • 相关阅读:
    ubuntu开机启动
    我的linux之路
    继承
    oracle 10g win7 win8 下的安装
    Java 安全检测
    BigDecimal 四舍五入
    Java Map 便利
    java split . |
    java 爬虫 Jsoup
    获取当前路径
  • 原文地址:https://www.cnblogs.com/weiweishuo/p/3082632.html
Copyright © 2011-2022 走看看