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

[内核编程] 无模块驱动通讯-自映射创建IO设备   [复制链接]

    2023-04-18 19:58:18
    高级教程源码
    易语言资源网
    2461 次浏览
    来源链接

映射驱动的方式有很多,利用漏洞驱动程序来映射,自己编写驱动程序来映射驱动程序,今天教学一种特别简单的映射方式-自映射驱动(我自己瞎起名的)

原理很简单,就是自己映射自己,在系统加载一个映像后,系统会自己修复重定位表,导入表等一些pe结构,

既然系统已经修复好了那么就可以利用这个机制直接映射,大致步骤如下:

1.申请存放驱动程序的非分页内存

2.计算需要的相关函数地址偏移

3.使用IoCreateDriver函数创建一个驱动对象,并使驱动入口位于申请的内存中

4.卸载掉驱动

这个步骤可能看上去太简洁了,详细注释我已经写在源码里面了,如果你看懂了我前几个帖子的内容,应该会一下子

就知道自映射驱动的原理了。稍微要注意的是要清除DO_DEVICE_INITIALIZING标志位,因为我们的驱动对象和派遣函数全部位于非分页内存中。
加载驱动后立即卸载驱动:

测试派遣函数是正常通讯的:

部分代码截图:



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

引用模块





引用支持库


源码文件名 支持库文件名 支持库标识
派遣函数测试.e 系统核心支持库 5.7 d09f2340818511d396f6aaf844c7e325
特殊功能支持库 3.1 A512548E76954B6E92C21055517615B0


[错误报告]   上一篇:EXUI教程_高级表格EX插入按钮元素...     下一篇:将yolo写成api供易语言使用?你可太...