设备数据获取方法、装置和终端设备与流程

文档序号:11951696阅读:196来源:国知局
设备数据获取方法、装置和终端设备与流程

本发明涉及信息安全技术领域,尤其涉及一种设备数据获取方法、装置和终端设备。



背景技术:

通常,操作系统会提供输入设备注册函数,在某些应用场景下,当进程需要获取鼠标等原始输入设备的数据时,可通过该输入设备注册函数向系统注册原始输入设备,从而当注册的原始输入设备的数据发生变化时,操作系统会发送一个消息以及原始输入设备的变化数据发送至相关进程,使得注册原始输入设备的进程可以对接收到的变化数据进行相应的操作。

然而,有些恶意程序会利用该输入设备注册函数,注册原始输入设备,从而对原始输入设备的相关数据进行恶意监听、窃取或篡改等。



技术实现要素:

本发明的目的旨在至少在一定程度上解决上述的技术问题之一。

为此,本发明的一个目的在于提出一种设备数据获取方法,该方法保护了原始输入设备数据的安全,且保护了操作系统的安全不被破坏。

本发明的第二个目的在于提出一种设备数据获取装置。

本发明的第三个目的在于提出一种终端设备。

本发明的第四个目的在于提出另一种终端设备。

为了实现上述目的,本发明第一方面实施例提出了一种设备数据获取方法,包括:监测操作系统内核提供的输入设备注册函数是否被调用;如果监测到当前进程调用所述输入设备注册函数,运行预设的与所述输入设备注册函数对应的钩子函数;检测当前进程的合法性;如果检测获知当前进程合法,则允许当前进程调用所述输入设备注册函数,向系统注册原始输入设备,以便实时获取所述原始输入设备的变化数据。

本发明实施例的设备数据获取方法,在监听操作系统内核提供的输入设备注册函数被调用时,如果监测到当前进程调用输入设备注册函数,运行预设的与输入设备注册函数对应的钩子函数,以不会当前进程并检测当前进程的合法性,如果获知当前进程合法,则允许当前进程调用输入设备注册函数,向系统注册原始输入设备,以便实时获取原始输入设备的变化数据。由此,保护了原始输入设备数据的安全,且保护了操作系统的安全不被破坏。

另外,本发明实施例的设备数据获取方法还具有如下附加的技术特征:

在本发明的一个实施例中,还包括:如果检测获知当前进程非法,则拒绝当前进程调用所述输入设备注册函数。

在本发明的一个实施例中,在所述监测操作系统内核提供的输入设备注册函数是否被调用之前,还包括:在具有网络安全应用的防御驱动中设置与所述输入设备注册函数对应的钩子函数。

在本发明的一个实施例中,所述检测当前进程的合法性,包括:根据预设的特征库检测当前进程的合法性。

在本发明的一个实施例中,所述特征库包括:合法进程的白名单,和/或,非法进程的黑名单。

为了实现上述目的,本发明第二方面实施例提出了一种设备数据获取装置,包括:监测模块,用于监测操作系统内核提供的输入设备注册函数是否被调用;运行模块,用于在监测到当前进程调用所述输入设备注册函数时,运行预设的与所述输入设备注册函数对应的钩子函数;检测模块,用于检测当前进程的合法性;处理模块,用于在检测获知当前进程合法时,允许当前进程调用所述输入设备注册函数,向系统注册原始输入设备,以便实时获取所述原始输入设备的变化数据。

本发明实施例的设备数据获取装置,在监听操作系统内核提供的输入设备注册函数被调用时,如果监测到当前进程调用输入设备注册函数,运行预设的与输入设备注册函数对应的钩子函数,以不会当前进程并检测当前进程的合法性,如果获知当前进程合法,则允许当前进程调用输入设备注册函数,向系统注册原始输入设备,以便实时获取原始输入设备的变化数据。由此,保护了原始输入设备数据的安全,且保护了操作系统的安全不被破坏。

另外,本发明实施例的设备数据获取装置还具有如下附加的技术特征:

在本发明的一个实施例中,所述处理模块还用于:在检测获知当前进程非法时,拒绝当前进程调用所述输入设备注册函数。

在本发明的一个实施例中,还包括:设置模块,用于在具有网络安全应用的防御驱动中设置与所述输入设备注册函数对应的钩子函数。

在本发明的一个实施例中,所述检测模块用于:根据预设的特征库检测当前进程的合法性。

在本发明的一个实施例中,所述特征库包括:合法进程的白名单,和/或,非法进程的黑名单。

为了实现上述目的,本发明第三方面实施例提出了一种终端设备,包括本发明第二方面实施例所述的设备数据获取装置。

本发明实施例的终端设备,在监听操作系统内核提供的输入设备注册函数被调用时,如果监测到当前进程调用输入设备注册函数,运行预设的与输入设备注册函数对应的钩子函数,以不会当前进程并检测当前进程的合法性,如果获知当前进程合法,则允许当前进程调用输入设备注册函数,向系统注册原始输入设备,以便实时获取原始输入设备的变化数据。由此,保护了原始输入设备数据的安全,且保护了操作系统的安全不被破坏。

为了实现上述目的,本发明第四方面实施例提出了另一种终端设备,包括以下一个或多个组件:处理器,存储器,电源电路,多媒体组件,音频组件,输入/输出(I/O)的接口,传感器组件,以及通信组件;其中,电路板安置在壳体围成的空间内部,所述处理器和所述存储器设置在所述电路板上;所述电源电路,用于为终端设备的各个电路或器件供电;所述存储器用于存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行以下步骤:

监测操作系统内核提供的输入设备注册函数是否被调用;

如果监测到当前进程调用所述输入设备注册函数,运行预设的与所述输入设备注册函数对应的钩子函数;

检测当前进程的合法性;

如果检测获知当前进程合法,则允许当前进程调用所述输入设备注册函数,向系统注册原始输入设备,以便实时获取所述原始输入设备的变化数据。

本发明实施例的终端设备,在监听操作系统内核提供的输入设备注册函数被调用时,如果监测到当前进程调用输入设备注册函数,运行预设的与输入设备注册函数对应的钩子函数,以不会当前进程并检测当前进程的合法性,如果获知当前进程合法,则允许当前进程调用输入设备注册函数,向系统注册原始输入设备,以便实时获取原始输入设备的变化数据。由此,保护了原始输入设备数据的安全,且保护了操作系统的安全不被破坏。

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1是根据本发明一个实施例的设备数据获取方法的流程图;

图2是根据本发明一个具体实施例的设备数据获取方法的流程图;

图3是根据本发明一个实施例的设备数据获取装置的结构示意图;

图4是根据本发明一个具体实施例的设备数据获取装置的结构示意图;

图5是根据本发明一个实施例的终端设备的结构示意图;以及

图6是根据本发明一个具体实施例的终端设备的结构示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

下面参考附图描述本发明实施例的设备数据获取方法、装置和终端设备。

图1是根据本发明一个实施例的设备数据获取方法的流程图。

如图1所示,该设备数据获取方法可包括:

S110,监测操作系统内核提供的输入设备注册函数是否被调用。

S120,如果监测到当前进程调用输入设备注册函数,运行预设的与输入设备注册函数对应的钩子函数。

通常,操作系统内核会为用户提供设备注册函数,在一些应用场景中,如果进程想要获取原始输入设备的相关数据,则可通过该设备注册函数注册对应的原始输入设备,其中,原始输入设备可以使鼠标、键盘等操作系统常用设备,也可以是其他一些自定义的设备。

从而当注册的原始输入设备的相关数据发生变化时,操作系统会发送一个消息以及该原始输入设备的新数据至该对应的进程,以便该进程对获取的原始输入设备的新数据进行相关操作。其中,根据具体应用场景的不同,操作系统内核提供的输入设备注册函数不同。

举例而言,当操作系统内核提供的设备注册函数是RegisterRawInputDevices函数时,当进程A希望获取鼠标键盘的属输入数据时,进程A通过调用RegisterRawInputDevices函数对应的内核函数NtUserRegisterRawInputDevices函数,注册鼠标键盘设备,在注册成功后,操作系统会在鼠标键盘的数据发生变化时,将相关变化数据发送至进程A。

然而,有些执行恶意任务的恶意进程,比如病毒、蠕虫和特洛伊木马进程等,可用过调用操作系统内核提供的输入设备注册函数,注册相关原始输入设备,对相关原始输入设备的数据进行恶意监听、篡改等,造成对原始输入设备数据的安全和操作系统安全的破坏。

因此,为了防止恶意进程通过调用输入设备注册函数对原始输入设备的数据的破坏,在允许进程使用输入设备注册函数之前,需要先判断调用输入设备控制函数进程的合法性,从而根据判断结果确定是否允许该进程使用该输入设备控制函数注册原始输入设备。

其中,应当理解的是,钩子函数可采用多种方式确定调用输入设备注册函数的当前进程,比如可通过获取调用输入设备注册函数的操作进程路径确定当前进程。

为了实现在允许调用进程使用输入设备控制函数之前,判断调用进程的合法性,本发明实施例预先在系统设置与输入设备控制函数对应的钩子函数。

进而,监测操作系统内核提供的输入设备注册函数是否被调用,每当监测到输入设备注册函数被调用时,则运行预设的与该输入设备注册函数对应的钩子函数。

即在操作系统响应该输入设备注册函数的调用事件之前,通过与该输入设备注册函数对应的钩子函数以判断调用该输入设备注册函数进程是否合法。

S130,检测当前进程的合法性。

S140,如果检测获知当前进程合法,则允许当前进程调用输入设备注册函数,向系统注册原始输入设备,以便实时获取原始输入设备的变化数据。

具体地,在钩子函数捕获调用输入设备注册函数的当前进程后,检测该当前进程的合法性,如果检测获知当前进程合法,则允许当前进程调用输入设备注册函数向系统注册原始输入设备,以满足其实时获取原始输入设备的变化数据的需求。

其中,需要说明的是,根据具体应用场景的不同,预设的钩子函数可采取多种方式检测调用输入设备注册函数的当前进程的合法性。

第一种示例,可以通过在操作系统本地对应设置包含相关合法或者非法进程相关特征的特征库,并通过特征库检测调用输入设备注册函数的当前进程的合法性。

第二种示例,可以在远程服务器上设置包含相关合法或者非法进程相关特征的特征库,并在钩子函数中设置一与该远程服务器进行信息交互的相关函数,从而钩子函数中的相关函数,将调用输入设备注册函数的当前进程的相关信息发送至远程服务器,以供远程服务器根据特征库检测调用输入设备注册函数的当前进程的合法性。

第三种示例,预先存储可靠、可信的进程绑定安全标识,从而钩子函数捕获调用输入设备注册函数的当前进程后,检测当前进程是否具有上述安全标识以检测当前进程的合法性。

综上所述,本发明实施例的设备数据获取方法,在监听操作系统内核提供的输入设备注册函数被调用时,如果监测到当前进程调用输入设备注册函数,运行预设的与输入设备注册函数对应的钩子函数,以不会当前进程并检测当前进程的合法性,如果获知当前进程合法,则允许当前进程调用输入设备注册函数,向系统注册原始输入设备,以便实时获取原始输入设备的变化数据。由此,保护了原始输入设备数据的安全,且保护了操作系统的安全不被破坏。

为了更加清楚的描述如何检测当前进程的合法性,下面结合附图2进行举例说明,在该示例中,通过设置包含相关进程特征的特征库,并通过特征库检测调用输入设备注册函数的当前进程的合法性,说明如下:

图2是根据本发明一个具体实施例的设备数据获取方法的流程图,如图2所示,该设备数据获取方法包括:

S210,在具有网络安全应用的防御驱动中设置与输入设备注册函数对应的钩子函数。

应当理解的是,根据应用场景的不同,与输入设备注册函数对应的钩子函数可以被设置于操作系统的多个位置。本发明实施例的设备数据获取方法中,为了将操作系统中相关安全防御的资源的整合,将与输入设备注册函数对应的钩子函数设置于具有网络安全应用的防御驱动中。

S220,监测操作系统内核提供的输入设备注册函数是否被调用。

S230,如果监测到当前进程调用输入设备注册函数,运行预设的与输入设备注册函数对应的钩子函数。

需要说明的是,步骤S220-S230的描述与上述步骤S110-S120相对应,因此对的步骤S220-S230的描述参考上述步骤S110-S120的描述,在此不再赘述。

S240,根据预设的特征库检测当前进程的合法性。

S250,如果检测获知当前进程合法,则允许当前进程调用输入设备注册函数,向系统注册原始输入设备,以便实时获取原始输入设备的变化数据。

S260,如果检测获知当前进程非法,则拒绝当前进程调用输入设备注册函数。

具体地,本实施例根据预设的特征库检测调用输入设备注册函数的进程的合法性。如果检测调用输入设备注册函数的进程非法,则表明调用该输入设备注册函数的进程可能是恶意进程,从而拒绝该进程调用输入设备注册函数。如果检测调用输入设备注册函数的进程合法,则允许当前进程调用输入设备注册函数。

需要说明的是,特征库中的具体内容可以根据应用需要进行设置,例如包括合法进程的白名单,和/或,包括非法进程的黑名单。举例说明如下:

第一种示例,特征库中可包括白名单,白名单中包含的进程信息对应的进程是合法进程,允许该进程调用输入设备注册函数不会影响原始输入设备的数据的安全。

在本示例中,确定调用输入设备注册函数的当前进程,根据该进程的进程信息查询特征库,如果查询获取该进程信息,与白名单中的进程信息匹配,则认为该进程是合法进程,因此允许该进程调用输入设备注册函数,向系统注册原始输入设备,以便实时获取原始输入设备的变化数据。如果查询获取该进程信息,与白名单中的进程信息不匹配,则认为该进程是非法进程,因此拒绝该进程调用输入设备注册函数。

第二种示例,特征库中包含黑名单,黑名单包含的进程信息对应的进程是非法进程,例如可能是恶意程序对应的进程,如果允许该进程调用输入设备注册函数会造成原始输入设备数据安全的破坏,以及对操作系统的安全带来破坏。

在本示例中,确定调用输入设备注册函数的当前进程,根据该当前进程的进程信息查询特征库,如果该进程的进程信息与黑名单包含的进程信息匹配,则认为该进程是非法进程,因此拒绝该进程调用输入设备注册函数。如果该进程的进程信息与黑名单包含的进程信息不匹配,则认为该进程是合法进程,因此允许该进程调用输入设备注册函数,向系统注册原始输入设备,以便实时获取原始输入设备的变化数据。

第三种示例,特征库中可包含黑名单和白名单,白名单中包含的进程信息对应的进程是合法进程,黑名单中包含的进程信息对应的进程是非法进程。

在本示例中,确定调用输入设备注册函数的当前进程,根据该进程的进程信息查询特征库,如果查询获取该进程信息,与白名单的进程信息匹配,则认为该进程是合法进程,因此允许该进程调用输入设备注册函数,向系统注册原始输入设备,以便实时获取原始输入设备的变化数据;如果该进程的进程信息与黑名单包含的进程信息匹配,则认为该进程是非法进程,因此拒绝该进程调用输入设备注册函数。

综上所述,本发明实施例的设备数据获取方法,将与输入设备注册函数对应的钩子函数设置于具有网络安全应用的防御驱动中,并通过特征库判断调用输入设备注册函数进程的合法性,只有在该进程合法时,才允许该进程对函数的调用,向系统注册原始输入设备,以便实时获取原始输入设备的变化数据。由此,保护了原始输入设备数据的安全,且保护了操作系统的安全不被破坏。

为了实现上述实施例,本发明还提出了一种设备数据获取装置,图3是根据本发明一个实施例的设备数据获取装置的结构示意图,如图3所示,该设备数据获取装置包括:

监测模块110,用于监测操作系统内核提供的输入设备注册函数是否被调用。

运行模块120,用于在监测到当前进程调用所述输入设备注册函数时,运行预设的与输入设备注册函数对应的钩子函数。

检测模块130,用于检测当前进程的合法性。

处理模块140,用于在检测获知当前进程合法时,允许当前进程调用输入设备注册函数,向系统注册原始输入设备,以便实时获取原始输入设备的变化数据。

具体地,为了实现在允许调用进程使用设备数据获取函数之前,判断调用进程的合法性,本发明实施例预先在系统设置与设备数据获取函数对应的钩子函数。

进而,监测模块110监测操作系统内核提供的设备数据获取函数是否被调用,每当监测模块110监测到设备数据获取函数被调用时,运行模块120则运行预设的与该设备数据获取函数对应的钩子函数。

即在操作系统响应该设备数据获取函数的调用事件之前,通过与该设备数据获取函数对应的钩子函数以判断调用该设备数据获取函数进程是否合法。

进一步地,在钩子函数捕获调用设备数据获取函数的进程后,检测模块130检测该进程的合法性,如果检测模块130检测获知当前进程合法,处理模块140则允许当前进程调用设备数据获取函数向系统注册原始输入设备,以便实时获取原始输入设备的变化数据。

综上所述,本发明实施例的设备数据获取装置,在监听操作系统内核提供的输入设备注册函数被调用时,如果监测到当前进程调用输入设备注册函数,运行预设的与输入设备注册函数对应的钩子函数,以不会当前进程并检测当前进程的合法性,如果获知当前进程合法,则允许当前进程调用输入设备注册函数,向系统注册原始输入设备,以便实时获取原始输入设备的变化数据。由此,保护了原始输入设备数据的安全,且保护了操作系统的安全不被破坏。

为了更加清楚的描述如何检测当前进程的合法性,下面结合附图4进行举例说明,在该示例中,通过设置模块设置包含相关进程特征的特征库,并通过特征库检测调用设备数据获取函数的当前进程的合法性,说明如下:

图4是根据本发明一个具体实施例的设备数据获取装置的结构示意图,如图4所示,在如图3所示的基础上,该设备数据获取装置还包括:

设置模块150,用于在具有网络安全应用的防御驱动中设置与输入设备注册函数对应的钩子函数。

应当理解的是,根据应用场景的不同,与设备数据获取函数对应的钩子函数可以被设置于操作系统的多个位置。本发明实施例的设备数据获取装置中,为了将操作系统中相关安全防御的资源的整合,设置模块150将与设备数据获取函数对应的钩子函数设置于具有网络安全应用的防御驱动中。

进一步地,在监测模块110监测到操作系统内核提供的设备数据获取函数被调用时,运行模块120运行预设的与设备数据获取函数对应的钩子函数获取当前进程。

进而检测模块130根据预设的特征库检测调用设备数据获取函数的进程的合法性。如果检测模块130检测调用设备数据获取函数的进程非法,则表明调用该设备数据获取函数的进程可能是恶意进程,从而处理模块140拒绝该进程调用设备数据获取函数。如果检测模块130检测调用设备数据获取函数的进程合法,则处理模块140允许当前进程调用设备数据获取函数,向系统注册原始输入设备,以便实时获取原始输入设备的变化数据。

需要说明的是,特征库中的具体内容可以根据应用需要进行设置,例如包括合法进程的白名单,和/或,包括非法进程的黑名单。

应当理解的是,本方实施例描述的设备数据获取装置与上述结合图1-图2描述的设备数据获取方法对应,本发明的设备数据获取装置的实施例中未披露的细节,在此不再赘述。

综上所述,本发明实施例的设备数据获取装置,将与输入设备注册函数对应的钩子函数设置于具有网络安全应用的防御驱动中,并通过特征库判断调用输入设备注册函数进程的合法性,只有在该进程合法时,才允许该进程对函数的调用,向系统注册原始输入设备,以便实时获取原始输入设备的变化数据。由此,保护了原始输入设备数据的安全,且保护了操作系统的安全不被破坏。

为了实现上述实施例,本发明还提出了一种终端设备,图5是根据本发明一个实施例的终端设备的结构示意图。

如图5所示,本发明实施例的终端设备包括设备数据获取装置1000。

其中,需要说明的是,本发明实施例中的设备数据获取装置1000与上述实施例中参考图3-图4描述的设备数据获取装置对应,在此不再赘述。

综上所述,本发明实施例的终端设备,在监听操作系统内核提供的输入设备注册函数被调用时,如果监测到当前进程调用输入设备注册函数,运行预设的与输入设备注册函数对应的钩子函数,以不会当前进程并检测当前进程的合法性,如果获知当前进程合法,则允许当前进程调用输入设备注册函数,向系统注册原始输入设备,以便实时获取原始输入设备的变化数据。由此,保护了原始输入设备数据的安全,且保护了操作系统的安全不被破坏。

为了实现上述实施例,本发明还提出了另一种终端设备。

图6是根据本发明一个具体实施例的终端设备的结构示意图。如图6所示,

该终端设备2000可以是移动电话等。

参见图6,终端设备2000可以包括以下一个或多个组件:处理器2001,存储器2002,电源电路2003,多媒体组件2004,音频组件2005,输入/输出(I/O)的接口2006,传感器组件2007,以及通信组件2008。

电源电路2003,用于为终端设备的各个电路或器件供电;存储器2002用于存储可执行程序代码;处理器2001通过读取存储器2002中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行以下步骤:

监测操作系统内核提供的输入设备注册函数是否被调用。

如果监测到当前进程调用输入设备注册函数,运行预设的与输入设备注册函数对应的钩子函数。

检测当前进程的合法性。

如果检测获知当前进程合法,则允许当前进程调用输入设备注册函数,向系统注册原始输入设备,以便实时获取原始输入设备的变化数据。

需要说明的是,上述对终端设备2000的描述可参考上述结合图1和图2对设备数据获取方法的描述,在此不再赘述。

综上所述,本发明实施例的终端设备,在监听操作系统内核提供的输入设备注册函数被调用时,如果监测到当前进程调用输入设备注册函数,运行预设的与输入设备注册函数对应的钩子函数,以不会当前进程并检测当前进程的合法性,如果获知当前进程合法,则允许当前进程调用输入设备注册函数,向系统注册原始输入设备,以便实时获取原始输入设备的变化数据。由此,保护了原始输入设备数据的安全,且保护了操作系统的安全不被破坏。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

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