一种用于windows系统中应用层和驱动层通讯的方法及系统与流程

文档序号:12363209阅读:来源:国知局

技术特征:

1.一种用于windows系统中应用层和驱动层通讯的方法,其特征在于,包括:

在驱动层中建立新的系统服务描述表,以新的所述系统服务描述表替换系统内核中原有的系统服务描述表;

接收应用层的通讯指令,并根据所述驱动层中的系统服务描述表调用相应的系统服务函数。

2.根据权利要求1所述的方法,其特征在于,还包括:

在驱动层建立新的系统服务描述表之前,获取原有的系统服务描述表的基本属性和数据内容,其中,所述基本属性包括系统服务描述表的内存地址和内存容量,所述数据内容包括系统服务描述表所指向的系统服务表以及所述系统服务表包含的地址表和参数表;

所述获取原有的系统服务描述表的基本属性和数据内容的过程包括:

加载驱动层的驱动入口函数,并利用PsGetVersion函数获取当前操作系统的版本号,并根据操作系统的版本号来获取原有的系统服务描述表的内存地址和内存容量;

根据所述内存地址查找到原有的系统服务描述表,并复制该系统服务描述表所指向的系统服务表以及所述系统服务表包含的地址表和参数表。

3.根据权利要求2所述的方法,其特征在于,所述在驱动层中建立新的系统服务描述表的过程包括:

根据原有的系统服务描述表的内存容量,在驱动层分配不小于所述内存容量的内存空间,在所述内存空间中建立新的系统服务描述表,并生成所述新的系统服务描述表的内存地址,将复制的系统服务表以及所述系统服务表包含的地址表和参数表拷贝至所述内存空间中。

4.根据权利要求3所述的方法,其特征在于,所述以新的所述系统服务描述表替换系统内核中原有的系统服务描述表的过程包括:

关闭所述驱动入口函数占用的CPU的中断功能,将CR0寄存器的WP位清零,修改所述系统内核为允许写入,以驱动层的系统服务描述表及其系统服务表与所述系统服务函数的指向关系替换系统内核中原有的系统服务描述表及其系统服务表与所述系统服务函数的指向关系;

内存地址替换完成后,将CR0寄存器的WP位设置为1,并恢复之前关闭的所占用CPU的中断功能。

5.根据权利要求4所述的方法,其特征在于,还包括:

在关闭所述驱动入口函数占用的CPU的中断功能之前,检测系统中是否存在其它具有线程连接的CPU;若存在,则对其它CPU启用延迟过程调用操作,以阻塞其它的CPU。

6.根据权利要求5所述的方法,其特征在于,还包括:

将新的系统服务函数和/或系统内核中部分原有的系统服务函数存储于所述驱动层的内存空间中;

建立系统服务表与驱动层中的所述系统服务函数的指向关系,并在新的所述系统服务描述表中生成所有系统服务函数的序列号。

7.根据权利要求6所述的方法,其特征在于,步骤还包括:应用层根据存储于驱动层中的所述系统服务函数的序列号,检测系统中所安装的CPU是否支持快速系统调用指令,如果不支持,则启用int 2e指令;如果支持,在快速系统调用指令中写入存储于驱动层中的所述系统服务函数的序列号,并设置对应的地址表和参数表。

8.根据权利要求7所述的方法,其特征在于,还包括:

建立系统服务表与系统内核中的其它系统服务函数的指向关系。

9.根据权利要求8所述的方法,其特征在于,所述接收应用层的通讯指令,并根据所述驱动层中的系统服务描述表调用相应的系统服务函数的过程包括:

根据所述通讯指令中所要调用的系统服务函数,依次按照新的所述系统服务描述表与所述系统服务表、所述系统服务表与所述系统服务函数的指向关系,确定所要调用的系统服务函数的存储位置,若位于所述驱动层,则应用层直接调用所述系统服务函数,若位于所述内核,则应用层通过驱动层调用所述系统服务函数。

10.一种通讯系统,其特征在于,包括:

创建替换单元,用于在驱动层中建立新的系统服务描述表,以新的所述系统服务描述表替换系统内核中原有的系统服务描述表;

服务接收单元,用于接收应用层的通讯指令,并根据所述驱动层中的系统服务描述表调用相应的系统服务函数。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1