易语言资源网 - 做最全的易语言资源下载社区
精易论坛授权登录

[内核编程] 另类的用户层与内核层通讯方式-Bound异常回调   [复制链接]

    2023-02-11 09:17:19
    高级教程源码
    易语言资源网
    1691 次浏览
    来源链接

bound异常回调主要用来处理用户层应用程序的数组越界异常,既然有回调那就可以用来通讯(也可以用来hook什么东西),效率也是杠杠的,算是最快的一种了。
需要注意的是只有回调注册成功了,数组越界异常才会被接管,不然程序肯定会崩溃的。

还有由于x64没有相关的汇编指令,所以这个东东就只能在x86玩玩了,算是易语言首发吧,老外也开源过相关资源。


由于我是个易语言菜鸟,不会写成置入代码这种形式的,只能写成shellcode直接调用了,如果大佬写了请戳一下我。


讲一下用户层数据怎么传到内核的,_KTRAP_FRAME这个结构位于_KTHREAD + 0x90的位置,不同的系统版本这个偏移可能会变化,自己用windbg看一下。

_KTRAP_FRAME保存着用户层线程每个寄存器的值,这个结构只有中断进内核才会被系统填充,

直接把我们的通讯结构指针当做参数来传,处理完我们的代码返回BoundExceptionHandled,具体代码实现请看源码。

本源码仅仅实现了一些简单的东西,主要用来学习与探索用户层与内核层的交互,请勿拿到某某游戏干坏事,大概率会被制裁。

如果有不懂的可以来我的交流群问,712026390(不是广告)


近段时间无模块通讯比较热门啊,有空细说


部分代码截图:



点我下载 (已有 42 次下载)

引用模块





引用支持库


源码文件名 支持库文件名 支持库标识
异常回调通讯.e 系统核心支持库 5.7 d09f2340818511d396f6aaf844c7e325


[错误报告]   上一篇:比核心库快百倍系列 - 分割文本_快速...     下一篇:纯代码无调用线性动画效果...