bound异常回调主要用来处理用户层应用程序的数组越界异常,既然有回调那就可以用来通讯(也可以用来hook什么东西),效率也是杠杠的,算是最快的一种了。
需要注意的是只有回调注册成功了,数组越界异常才会被接管,不然程序肯定会崩溃的。
还有由于x64没有相关的汇编指令,所以这个东东就只能在x86玩玩了,算是易语言首发吧,老外也开源过相关资源。
由于我是个易语言菜鸟,不会写成置入代码这种形式的,只能写成shellcode直接调用了,如果大佬写了请戳一下我。
讲一下用户层数据怎么传到内核的,_KTRAP_FRAME这个结构位于_KTHREAD + 0x90的位置,不同的系统版本这个偏移可能会变化,自己用windbg看一下。
_KTRAP_FRAME保存着用户层线程每个寄存器的值,这个结构只有中断进内核才会被系统填充,
直接把我们的通讯结构指针当做参数来传,处理完我们的代码返回BoundExceptionHandled,具体代码实现请看源码。
本源码仅仅实现了一些简单的东西,主要用来学习与探索用户层与内核层的交互,请勿拿到某某游戏干坏事,大概率会被制裁。
如果有不懂的可以来我的交流群问,712026390(不是广告)
近段时间无模块通讯比较热门啊,有空细说
部分代码截图:
驱动源码与易语言调用:
异常回调通讯.rar
(32.53 KB, 下载次数: 73)
|