boundcallback 很早就已经被用来进行用户层与内核层之间的通讯了,但由于 bound 指令仅在 x86 架构下可用,其应用范围一直受限。
x86 源码:misslng/boundcallback
众所周知,x86 可通过"天堂之门"技术切换至 x64 模式执行。反之,x64 同样能够回到 x86 模式执行代码。
基于此原理,可利用 retf 指令从 x64 跳转回 x86,触发 bound 异常来实现与驱动层的通信。
这种方法使得基于 boundcallback 的通信机制能够同时兼容 x64 架构。
由于系统中同时只允许存在一个bound异常回调,因此该通讯方式更难被检测。
源码:
dejavu-secure/x64-boundcallback