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有什么区别呢?

  • 相关阅读:
    阿里巴巴图标库在项目中的用法
    js对象的深拷贝
    Ajax
    HTML5新增的canvas是什么--通过刮奖效果学习
    一些最基础的面试题
    微信小程序实现列表搜索功能
    vue的基础双向绑定
    ES6 Promise 的不完全实现
    JQ学习
    播放音乐进度条
  • 原文地址:https://www.cnblogs.com/onetrainee/p/11871002.html
Copyright © 2011-2022 走看看