zoukankan      html  css  js  c++  java
  • KeContextToKframes函数逆向

      在逆向_KiRaiseException(之后紧接着就是派发KiDispatchException)函数时,遇到一个 KeContextToKframes 函数,表面意思将CONTEXT转换为 TRAP_FRAME,但传进去的参数着实有点多,所以简单逆向一下这个函数。

    因为能力有限,我们借助WRK源码分析,搞懂其背后逻辑

    1. 首先,我们看到如下代码解释。

      

       看到上面,我们应该明确,这个并不是将 context 转换成 frame,而是根据context.flags将 context_frame 转换成 trap_frame。

      context_frame,即三环进零环时,保存三环的现场。当返回时,根据context_frame中的内容来返回。

      因此这段代码的逻辑是:

      

    2. 但是该函数参数还是传入一个CONTEXT,这个有什么用呢?

      很遗憾,我们简单地所搜了下源码,并没有发现这个参数有任何用处,的确是Frame之间的转换,而CONTEXT仅提供一个eflags作为参考的功能。

    未解决的问题:TRAP_FRAME与CONTEXT_FRAME有什么区别呢?

  • 相关阅读:
    SCOI2012 奇怪的游戏
    AHOI2013 差异
    HAOI2018 染色
    HNOI2015 开店
    PKUWC2018 随机游走
    HAOI2015 按位或
    Luogu4859 二项式反演
    CTSC2018 混合果汁
    yii2.0邮件发送问题解决
    yii2.0 elasticsearch模糊查询
  • 原文地址:https://www.cnblogs.com/onetrainee/p/11871002.html
Copyright © 2011-2022 走看看