用户模式与内核模式通信的方法、装置、电子设备和介质制造方法及图纸

技术编号:36405737 阅读:56 留言:0更新日期:2023-01-18 10:14
本公开涉及一种用户模式与内核模式通信的方法、装置、电子设备和计算机可读介质。该方法包括:加载包括中断处理函数的驱动,其中所述驱动用于注册与所述中断处理函数对应的目标中断向量;在目标进程创建时,将所述目标中断向量注入到所述目标进程中;以及响应于接收到包括所述目标中断向量的中断,执行所述中断处理函数。利用该方法能够解决现有的用户态应用与内核态应用通信容易被拦截或恶意利用的问题。问题。问题。

【技术实现步骤摘要】
用户模式与内核模式通信的方法、装置、电子设备和介质


[0001]本公开涉及一种用户模式与内核模式通信的方法、装置、电子设备和计算机可读介质。

技术介绍

[0002]用户模式与内核模式的常规通信方式包括标准系统调用、DeviceIoControl、Escape等。这些常规的通信方式都是将控制代码直接发送到指定的设备驱动程序,使相应的设备执行相应的操作。相关技术中,用户模式与内核模式通信的安全性亟待提高。

技术实现思路

[0003]根据本公开的一个方面,提供了一种用户模式与内核模式通信的方法,包括:加载包括中断处理函数的驱动,其中所述驱动用于注册与所述中断处理函数对应的目标中断向量;在目标进程创建时,将所述目标中断向量注入到所述目标进程中;以及响应于接收到包括所述目标中断向量的中断,执行所述中断处理函数。
[0004]根据该方法的一些示例性实施例,所述中断处理函数为自定义的中断处理函数。
[0005]根据该方法的一些示例性实施例,所述驱动注册与所述中断处理函数对应的目标中断向量包括:扫描中断描述符表IDT并确定非系统预留的且未被占用的中断向量作为所述目标中断向量;以及将所述中断处理函数的地址分解成IDT表项的格式并填入到所述目标中断向量对应的IDT表项中。
[0006]根据该方法的一些示例性实施例,扫描中断描述符表IDT并确定非系统预留的且未被占用的中断向量作为所述目标中断向量包括:获取与中断向量对应的IDT表项并进行解析,其中,所述中断向量为跳过CPU保留和操作系统保留的中断向量的中断向量;并且当所述IDT表项无效时,则将所述中断向量确定为所述目标中断向量。
[0007]根据该方法的一些示例性实施例,该方法还包括:在所述目标进程进行通信之前检查所述驱动是否存在。
[0008]根据该方法的一些示例性实施例,通过检测所述驱动是否创建了设备对象来检查所述驱动是否存在。
[0009]根据该方法的一些示例性实施例,在所述目标进程进行通信之前准备通信环境。
[0010]根据该方法的一些示例性实施例,所述准备通信环境包括协商通信协议和进行数据保护。
[0011]根据该方法的一些示例性实施例,所述通信环境包括传递的参数、方式。
[0012]根据本公开的另一个方面,提供了一种用户模式与内核模式通信的装置,包括:加载模块,用于加载包括中断处理函数的驱动,其中所述驱动用于注册与所述中断处理函数对应的目标中断向量;注入模块,用于当目标进程创建时将所述目标中断向量注入到所述目标进程中;以及执行模块,用于响应于接收到包括所述目标中断向量的中断,执行所述中断处理函数。
[0013]根据该装置的一些示例性实施例,所述中断处理函数为自定义的中断处理函数。
[0014]根据该装置的一些示例性实施例,所述加载模块包括:扫描模块,用于扫描中断描述符表IDT并确定非系统预留的且未被占用的中断向量作为所述目标中断向量;和分解模块,用于将所述中断处理函数的地址分解成IDT表项的格式并将其填入到所述目标中断向量对应的IDT表项中。
[0015]根据该装置的一些示例性实施例,所述扫描模块包括:解析模块,用于获取与中断向量对应的IDT表项并进行解析,其中,所述中断向量为跳过CPU保留和操作系统保留的中断向量的中断向量;并且当所述IDT表项无效时,则将所述中断向量确定为所述目标中断向量。
[0016]根据该装置的一些示例性实施例,所述装置还包括:检查模块,用于在所述目标进程进行通信之前检查所述驱动是否存在。
[0017]根据该装置的一些示例性实施例,通过检测所述驱动是否创建了设备对象来检查所述驱动是否存在。
[0018]根据该装置的一些示例性实施例,所述装置还包括:准备模块,用于在所述目标进程进行通信之前准备通信环境。
[0019]根据该装置的一些示例性实施例,所述准备通信环境包括协商通信协议和进行数据保护。
[0020]根据该装置的一些示例性实施例,所述通信环境包括传递的参数、方式。
[0021]根据本公开的另一个方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述方法。
[0022]根据本公开的另一个方面,提供了一种其上存储有指令的计算机可读介质,所述指令当被执行时使得计算设备执行根据上述实施例中任一项所述的方法。
[0023]通过本公开,可以对现有的用户态应用与内核态应用通信容易被拦截并且被第三方软件恶意利用的问题进行克服。由于本公开的整个流程只运行自行实现的代码,所以绕开一切与系统相关的代码,因此第三方的程序都无法进行拦截和调用。本公开的核心是提供一种用于用户态应用与内核态应用通信的新的思路,其保障了高度安全的用户态应用与内核态应用通信。
[0024]本公开可以应用于所有操作系统,例如windows,linux,Android,ios平台等,其不依赖于操作系统框架,有着最高的自由度与安全性。
附图说明
[0025]现在将参照附图描述本公开的具体示例性实施例。然而,本公开可以以很多不同的形式实施,并且不应该被解读为限于本文所阐述的实施例;相反,这些实施例被提供以便使该公开全面而完整,并且将向本领域技术人员完全表达本公开的范围。在对附图所示特定示例性实施例的详细描述中所使用的术语不打算对本公开是限制性的。在附图中,类似的数字指代类似的部件。
[0026]图1示出根据本公开一个实施例的用于用户模式与内核模式通信的方法的流程图。
[0027]图2示出根据本公开一个实施例的用于用户模式与内核模式通信的装置的框图。
[0028]图3示出根据本公开一个实施例的计算设备的框图。
具体实施方式
[0029]为使本公开的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本公开技术方案作进一步说明。应该进一步理解,使用在该说明书中,术语“包括”意指存在所陈述的特征、步骤、操作、部件和/或组件,但是并不排除存在或添加一个或更多个其他特征、步骤、操作、部件、组件和/或其组成的组。
[0030]由于常规的通信方式都使用CPU保留的或操作系统保留的中断向量,这种方式容易被拦截,安全性不高,并且容易被第三方软件恶意利用。比如固件升级接口,如果单纯使用这种方式,容易被恶意升级,成为第三方恶意利用的后门,包括反调试、反作弊等场景。
[0031]因此,需要一种改进的用户模式与内核模式通信的方式来解决以上缺陷。
[0032]图1是根据本公开实施例示出用于用户模式与内核模式通信的方法100的流程图。
[0033]如图1中所示,在步骤102处,加载包括中断处理函数的驱动,其中所述驱动用于注册与所述中断处理函数对应的目标中断向量。在Windows操作系统的示例中,分为NT式驱动程序的加载和WDM式驱动程序的加载。NT式驱动程序的加载:1. 用DriverMonitor工具加载NT式驱本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用户模式与内核模式通信的方法,其特征在于,所述方法包括:加载包括中断处理函数的驱动,其中所述驱动用于注册与所述中断处理函数对应的目标中断向量;在目标进程创建时,将所述目标中断向量注入到所述目标进程中;以及响应于接收到包括所述目标中断向量的中断,执行所述中断处理函数。2.根据权利要求1所述的方法,其特征在于,所述中断处理函数为自定义的中断处理函数。3.根据权利要求1或2所述的方法,其特征在于,所述驱动注册与所述中断处理函数对应的目标中断向量包括:扫描中断描述符表IDT并确定非系统预留的且未被占用的中断向量作为所述目标中断向量;以及将所述中断处理函数的地址分解成IDT表项的格式并填入到所述目标中断向量对应的IDT表项中。4.根据权利要求3所述的方法,其特征在于,扫描中断描述符表IDT并确定非系统预留的且未被占用的中断向量作为所述目标中断向量包括:获取与中断向量对应的IDT表项并进行解析,其中,所述中断向量为跳过CPU保留和操作系统保留的中断向量的中断向量;并且当所述IDT表项无效时,则将所述中断向量确定为所述目标中断向量。5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:在所述目标进程进行通信之前检查所述驱动是否存在。6.根据权利要求5所述的方法,其特征在于,通过检测所述驱动是否创建了设备对象来检查所述驱动是否存在。7.根据权利要求1或2所述的方法,其特征在于,在所述目标进程进行通信之前准备通信环境。8.根据权利要求7所述的方法,其特征在于,所述准备通信环境包括协商通信协议和进行数据保护。9.根据权利要求7所述的方法,其特征在于,所述通信环境包括传递的参数、方式。10.一种用户模式与内核模式通信的装置,其特征在于,所述装置包括:加载模块,用于加载包括中断处理函数的驱动,其中所述驱动用于注册与所述中断处理函数对应的目标中断向量;注入模块,用于当目标进程创建...

【专利技术属性】
技术研发人员:请求不公布姓名
申请(专利权)人:摩尔线程智能科技北京有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1