本发明涉及信息安全技术领域,尤其涉及一种窗口内容处理方法、装置及终端设备。
背景技术:
通常,操作系统提供函数,可以截取运行应用程序的窗口内容,并且截取的内容可以保存为图片。
然而,有些恶意软件会利用此方法截取用户窗口内容,导致窗口内容泄露,对操作系统的安全带来破坏。
技术实现要素:
本发明的目的旨在至少在一定程度上解决上述的技术问题之一。
为此,本发明的第一个目的在于提出一种窗口内容处理方法,该方法避免了恶意软件对窗口内容的截取,保护了操作系统的安全。
本发明的第二个目的在于提出了一种窗口内容处理装置。
本发明的第三个目的在于提出一种终端设备。
本发明的第四个目的在于提出另一种终端设备。
为达上述目的,根据本发明第一方面实施例提出的一种窗口内容处理方法,包括以下步骤:监测操作系统内核提供的窗口内容截取函数是否被调用;如果监测到当前进程调用所述窗口内容截取函数获取目标窗口的内容,运行预设的与所述窗口内容截取函数对应的钩子函数;检测所述目标窗口所属进程是否为当前进程;如果检测获知所述目标窗口所属进程是当前进程,则允许当前进程调用所述窗口内容截取函数。
本发明实施例的窗口内容处理方法,首先监测操作系统内核提供的窗口内容截取函数是否被调用,接着在当前进程调用窗口内容截取函数时运行预设的与窗口内容截取函数对应的钩子函数,并检测目标窗口所属进程是否是当前进程,在目标窗口所属进程是当前进程时,允许当前进程调用窗口内容截取函数。该方法避免了恶意软件对窗口内容的截取,保护了操作系统的安全。
另外,根据本发明上述实施例的窗口内容处理方法还可以具有如下附加的技术特征:
在一些示例中,所述的方法,还包括:如果检测获知所述目标窗口所属进程不是当前进程,则检测当前进程的合法性;如果检测获知当前进程非法,则拒绝当前进程调用所述窗口内容截取函数获取目标窗口的内容。
在一些示例中,如果检测获知当前进程合法,则允许当前进程调用所述窗口内容截取函数获取目标窗口的内容。
在一些示例中,在所述监测操作系统内核提供的窗口内容截取函数是否被调用之前,还包括:在具有网络安全应用的防御驱动中设置与所述窗口内容截取函数对应的钩子函数。
在一些示例中,所述检测当前进程的合法性,包括:根据预设的特征库检测当前进程的合法性。
在一些示例中,所述特征库包括:包括合法进程的白名单,和/或,包括非法进程的黑名单。
为达上述目的,根据本发明的第二方面实施例提出的一种窗口内容处理装置,包括:监测模块,用于监测操作系统内核提供的窗口内容截取函数是否被调用;运行模块,用于如果监测到当前进程调用所述窗口内容截取函数获取目标窗口的内容,运行预设的与所述窗口内容截取函数对应的钩子函数;第一检测模块,用于检测所述目标窗口所属进程是否为当前进程;第一处理模块,用于在检测获知所述目标窗口所属进程是当前进程时,允许当前进程调用所述窗口内容截取函数。
本发明实施例的窗口内容处理装置,首先监测模块监测操作系统内核提供的窗口内容截取函数是否被调用,接着运行模块在当前进程调用窗口内容截取函数时运行预设的与窗口内容截取函数对应的钩子函数,第一检测模块检测目标窗口所属进程是否是当前进程,第一处理模块在目标窗口所属进程是当前进程时,允许当前进程调用窗口内容截取函数。该装置避免了恶意软件对窗口内容的截取,保护了操作系统的安全。
另外,根据本发明上述实施例的窗口内容处理装置还可以具有如下附加的技术特征:
在一些示例中,所述的装置,还包括:第二检测模块,用于在检测获知所述目标窗口所属进程不是当前进程时,检测当前进程的合法性;第二处理模块,用于在检测获知当前进程非法时,拒绝当前进程调用所述窗口内容截取函数获取目标窗口的内容。
在一些示例中,所述的装置,包括:所述第二处理模块还用于在检测获知当前进程合法时,允许当前进程调用所述窗口内容截取函数获取目标窗口的内容。
在一些示例中,所述的装置,还包括:设置模块,用于在具有网络安全应用的防御驱动中设置与所述窗口内容截取函数对应的钩子函数。
在一些示例中,所述第二检测模块具体用于根据预设的特征库检测当前进程的合法性。
在一些示例中,所述特征库包括:包括合法进程的白名单,和/或,包括非法进程的黑名单。
为了实现上述目的,本发明第三方面实施例提出了一种终端设备,包括本发明第二方面实施例所述的窗口内容处理装置。
本发明实施例的终端设备,首先监测模块监测操作系统内核提供的窗口内容截取函数是否被调用,接着运行模块在当前进程调用窗口内容截取函数时运行预设的与窗口内容截取函数对应的钩子函数,第一检测模块检测目标窗口所属进程是否是当前进程,第一处理模块在目标窗口所属进程是当前进程时,允许当前进程调用窗口内容截取函数。避免了恶意软件对窗口内容的截取,保护了操作系统的安全。
为达上述目的,根据本申请的第四方面实施例提出的另一种终端设备,
包括以下一个或多个组件:处理器,存储器,电源电路,多媒体组件,音频组件,输入/输出(I/O)的接口,传感器组件,以及通信组件;其中,电路板安置在壳体围成的空间内部,所述处理器和所述存储器设置在所述电路板上;所述电源电路,用于为终端设备的各个电路或器件供电;所述存储器用于存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行以下步骤:
监测操作系统内核提供的窗口内容截取函数是否被调用;
如果监测到当前进程调用所述窗口内容截取函数获取目标窗口的内容,运行预设的与所述窗口内容截取函数对应的钩子函数;
检测所述目标窗口所属进程是否为当前进程;
如果检测获知所述目标窗口所属进程是当前进程,则允许当前进程调用所述窗口内容截取函数。
本发明实施例的终端设备,首先监测模块监测操作系统内核提供的窗口内容截取函数是否被调用,接着运行模块在当前进程调用窗口内容截取函数时运行预设的与窗口内容截取函数对应的钩子函数,第一检测模块检测目标窗口所属进程是否是当前进程,第一处理模块在目标窗口所属进程是当前进程时,允许当前进程调用窗口内容截取函数。避免了恶意软件对窗口内容的截取,保护了操作系统的安全。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是根据本发明一个实施例的窗口内容处理方法的流程图;
图2是根据本发明另一个实施例的窗口内容处理方法的流程图;
图3是根据本发明一个实施例的窗口内容处理装置的结构示意图;
图4是根据本发明另一个实施例的窗口内容处理装置的结构示意图;
图5是根据本发明一个实施例的终端设备的结构示意图;以及
图6是根据本发明另一个实施例的终端设备的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的窗口内容处理方法、装置及终端设备。
图1是根据本发明一个实施例的窗口内容处理方法的流程图,如图1所示,该窗口内容处理方法包括:
S101,监测操作系统内核提供的窗口内容截取函数是否被调用。
S102,如果监测到当前进程调用窗口内容截取函数获取目标窗口的内容,运行预设的与窗口内容截取函数对应的钩子函数。
通常,操作系统内核会为用户提供窗口内容截取函数,通过该窗口内容截取函数可以截取应用程序创建的窗口内容,并将截取窗口内容保存为图片。其中,根据具体应用场景的不同,操作系统内核提供的窗口内容截取函数不同。
举例而言,当操作系统提供的窗口内容截取函数是PrintWindow时,运行QQ,创建一个QQ窗口,当用户点击某个好友进行聊天时,通过系统提供的函数对应的内核函数NtUserPrintWindow可以截取聊天内容并保存为图片。
由此可见,恶意软件可以通过调用操作系统内核提供的窗口内容截取函数实现对窗口内容的截取。其中,恶意软件可以是系统上执行恶意任务的病毒、蠕虫和特洛伊木马的程序,通过破坏调用窗口内容截取函数的当前进程获取窗口内容。比如,目标窗口是文档窗口,恶意软件能够截取文档内容,导致文档内容泄露,从而破坏操作系统的安全。
为了避免恶意软件通过调用操作系统内核提供的窗口内容截取函数实现对目标窗口内容的截取,本发明提供的窗口内容处理方法预先在系统中设置与窗口内容截取函数对应的钩子函数。
进而,监测操作系统内核提供的窗口内容截取函数是否被调用,当监测到窗口内容截取函数被当前进程调用时,运行预设的与窗口内容截取函数对应的钩子函数。即,在操作系统响应该调用事件之前,钩子函数就捕获到当前进程,即钩子函数先得到控制权。其中,该控制权包括:可以改变当前进程调用别的函数,也可以不作处理而当前进程继续调用窗口内容截取函数,还可以强制结束当前进程等等。从而,通过与窗口内容截取函数对应的钩子函数确定是否允许当前进程调用窗口内容截取函数截取目标窗口内容。
S103,检测目标窗口所属进程是否为当前进程。
S104,如果检测获知目标窗口所属进程是当前进程,则允许当前进程调用窗口内容截取函数。
具体而言,监测到当前进程调用窗口内容截取函数截取窗口内容时,运行预设的与窗口内容截取函数对应的钩子函数,并获取目标窗口所属进程。
首先,通过检测目标窗口所属进程与调用窗口内容截取函数的当前进程是否相同,即判断是否是当前正在使用的应用程序本身的进程在调用窗口内容截取函数。
如果检测获知目标窗口所属进程是当前进程,则表明是当前正在使用的应用程序本身的进程在调用窗口内容截取函数,从而允许当前进程调用窗口内容截取函数。
综上所述,本发明实施例的窗口内容处理方法,首先监测操作系统内核提供的窗口内容截取函数是否被调用,接着在当前进程调用窗口内容截取函数时运行预设的与窗口内容截取函数对应的钩子函数,并检测目标窗口所属进程是否是当前进程,在目标窗口所属进程是当前进程时,允许当前进程调用窗口内容截取函数。该方法避免了恶意软件对窗口内容的截取,保护了操作系统的安全。
基于以上实施例,进一步地,当检测目标窗口所属进程与当前进程不相同时,并不直接允许当前进程直接调用窗口内容截取函数,需要对当前进程的合法性进行判断,只有当判断当前进程合法时,才允许其调用窗口内容截取函数。
其中,检测当前进程是否合法的方式有很多种,例如:根据预设的特征库检测、根据预设的安全标识检测和根据服务器之间的交互检测等等,可以根据不同的应用场景,选择合适的检测方式。
下面结合附图2对当目标窗口所属进程与当前进程不相同时,根据预设的特征库对当前进程的合法性进行判断的过程进行具体说明,说明如下:
S201,在具有网络安全应用的防御驱动中设置与窗口内容截取函数对应的钩子函数。
应当理解的是,根据应用场景的不同,与窗口内容截取函数对应的钩子函数可以被设置于操作系统的多个位置,本发明实施例的窗口内容处理方法中,将钩子函数设置于具有网络安全应用的防御驱动中,有利于操作系统中相关安全资源的整合。
S202,监测操作系统内核提供的窗口内容截取函数是否被调用。
S203,如果监测到当前进程调用窗口内容截取函数获取目标窗口的内容,运行预设的与窗口内容截取函数对应的钩子函数。
需要说明的是,步骤S202-S203的描述与上述步骤S101-S102相对应,因此对的步骤S202-S203的描述参考上述步骤S101-S102的描述,在此不再赘述。
S204,检测目标窗口所属进程是否为当前进程。
S205,如果检测获知目标窗口所属进程不是当前进程,则根据预设的特征库检测当前进程的合法性。
具体而言,监测到当前进程调用窗口内容截取函数截取窗口内容时,运行预设的与窗口内容截取函数对应的钩子函数,并获取目标窗口所属进程。
首先,通过检测目标窗口所属进程与调用窗口内容截取函数的当前进程是否相同,即判断是否是当前正在使用的应用程序本身的进程在调用窗口内容截取函数。
如果检测获知目标窗口所属进程不是当前进程,则表明不是当前正在使用的应用程序本身的进程在调用窗口内容截取函数,从而需要检测当前进程的合法性。
S206,如果检测获知当前进程非法,则拒绝当前进程调用窗口内容截取函数获取目标窗口的内容。
S207,如果检测获知当前进程合法,则允许当前进程调用窗口内容截取函数获取目标窗口的内容。
具体地,本实施例根据预设的特征库检测调用窗口内容截取函数的进程的合法性。如果检测窗口内容截取函数的进程非法,则表明调用该窗口内容截取函数的进程可能是恶意进程,从而拒绝该进程调用窗口内容截取函数获取目标窗口的内容。如果检测调用窗口内容截取函数的进程合法,则允许当前进程调用窗口内容截取函数获取目标窗口的内容。
需要说明的是,特征库中的具体内容可以根据应用需要进行设置,例如包括合法进程的白名单,和/或,包括非法进程的黑名单。举例说明如下:
作为一种示例,特征库中可包括白名单,白名单中包含的进程信息对应的进程是合法进程、是不会对操作系统的安全带来破坏的进程,允许进程调用窗口内容截取函数,不会破坏操作系统的安全。
在本示例中,在检测获知目标窗口所属进程不是当前进程时,根据当前进程的进程信息查询特征库,如果查询获取当前进程信息,与白名单中的进程信息匹配,则认为当前进程是合法进程,因此允许当前进程调用窗口内容截取函数获取目标窗口的内容。如果查询获取该进程信息,与白名单中的进程信息不匹配,则认为该进程是非法进程,因此拒绝该进程调用窗口内容截取函数获取目标窗口的内容。
作为一种示例,特征库中包含黑名单,黑名单包含的进程信息对应的进程是非法进程,例如可能是恶意程序对应的进程,如果允许该进程调用窗口内容截取函数会造成对操作系统的破坏。
在本示例中,在检测获知目标窗口所属进程不是当前进程时,根据当前进程的进程信息查询特征库,如果当前进程的进程信息与黑名单包含的进程信息匹配,则认为该当前进程是非法进程,因此拒绝当前进程调用窗口内容截取函数获取目标窗口的内容。如果该进程的进程信息与黑名单包含的进程信息不匹配,则认为该进程是合法进程,因此允许该进程调用窗口内容截取函数获取目标窗口的内容。
作为一种示例,特征库中可包含黑名单和白名单,白名单中包含的进程信息对应的进程是合法进程,黑名单中包含的进程信息对应的进程是非法进程。
在本示例中,检测获知目标窗口所属进程不是当前进程时,根据当前进程的进程信息查询特征库,如果查询获取当前进程信息,与白名单的进程信息匹配,则认为当前进程是合法进程,因此允许当前进程调用窗口内容截取函数获取目标窗口的内容。如果当前进程的进程信息与黑名单包含的进程信息匹配,则认为当前进程是非法进程,因此拒绝当前进程调用窗口内容截取函数获取目标窗口的内容。
综上所述,本发明实施例的窗口内容处理方法,当检测目标窗口所属进程不是调用窗口内容截取函数的当前进程时,则根据特征库检测当前进程合法性,当当前进程合法时,允许调用窗口内容截取函数,若当前进程非法时,拒绝调用窗口内容截取函数,进一步避免恶意软件对窗口内容的截取,保护了操作系统的安全。
为了实现上述实施例,本发明还提出了一种窗口内容处理装置。
图3是根据本发明一个实施例的窗口内容处理装置的结构示意图,如图3所示,该窗口内容处理装置包括:监测模块10、运行模块20、第一检测模块30和第一处理模块40。
其中,监测模块10,用于监测操作系统内核提供的窗口内容截取函数是否被调用。
运行模块20,用于如果监测到当前进程调用窗口内容截取函数获取目标窗口的内容,运行预设的与窗口内容截取函数对应的钩子函数。
第一检测模块30,用于检测目标窗口所属进程是否为当前进程。
第一处理模块40,用于在检测获知目标窗口所属进程是当前进程时,允许当前进程调用窗口内容截取函数。
具体地,为了避免恶意软件通过调用操作系统内核提供的窗口内容截取函数实现对目标窗口内容的截取,本发明提供的窗口内容处理装置预先在系统中设置与窗口内容截取函数对应的钩子函数。
进而,监测模块10监测操作系统内核提供的窗口内容截取函数是否被调用,运行模块20在监测到窗口内容截取函数被当前进程调用时,运行预设的与窗口内容截取函数对应的钩子函数。即,在操作系统响应该调用事件之前,钩子函数就捕获到当前进程,即钩子函数先得到控制权。其中,该控制权包括:可以改变当前进程调用别的函数,也可以不作处理而当前进程继续调用窗口内容截取函数,还可以强制结束当前进程等等。从而,通过与窗口内容截取函数对应的钩子函数确定是否允许当前进程调用窗口内容截取函数截取目标窗口内容。
进一步地,第一检测模块30通过检测目标窗口所属进程与调用窗口内容截取函数的当前进程是否相同,即判断是否是当前正在使用的应用程序本身的进程在调用窗口内容截取函数。
从而,如果第一检测模块30检测获知目标窗口所属进程与当前进程相同,则表明是当前正在使用的应用程序本身的进程在调用窗口内容截取函数,从而第一处理模块40允许当前进程调用窗口内容截取函数截取目标窗口内容。
需要说明的是,前述对窗口内容处理方法实施例的解释说明也适用于该实施例的窗口内容处理装置,其实现原理类似,此处不再赘述。
综上所述,本发明实施例的窗口内容处理装置,首先监测模块监测操作系统内核提供的窗口内容截取函数是否被调用,接着运行模块在当前进程调用窗口内容截取函数时运行预设的与窗口内容截取函数对应的钩子函数,第一检测模块检测目标窗口所属进程是否是当前进程,第一处理模块在目标窗口所属进程是当前进程时,允许当前进程调用窗口内容截取函数。该装置避免了恶意软件对窗口内容的截取,保护了操作系统的安全。
为了更加清楚的描述如何检测当前进程的合法性,下面结合附图4进行举例说明,在该示例中,通过设置模块设置包含相关进程特征的特征库,并通过特征库检测调用窗口内容截取函数的当前进程的合法性,说明如下:
图4是根据本发明一个具体实施例的窗口内容处理装置的结构示意图,如图4所示,在如图3所示的基础上,该装置还包括:设置模块50、第二检测模块60和第二处理模块70。
其中,设置模块50,用于在具有网络安全应用的防御驱动中设置与窗口内容截取函数对应的钩子函数。
应当理解的是,根据应用场景的不同,与窗口内容截取函数对应的钩子函数可以被设置于操作系统的多个位置,本发明实施例的窗口内容处理方法中,设置模块50将钩子函数设置于具有网络安全应用的防御驱动中,有利于操作系统中相关安全资源的整合。
第二检测模块60,用于在检测获知目标窗口所属进程不是当前进程时,检测当前进程的合法性。
第二处理模块70,用于在检测获知当前进程非法时,拒绝当前进程调用窗口内容截取函数截取目标窗口内容。
进一步地,在监测模块10监测到操作系统内核提供的窗口内容截取函数被调用时,运行模块20运行预设的与窗口内容截取函数对应的钩子函数获取当前进程。
进而第二检测模块60在检测获知目标窗口所属进程不是当前进程时,根据预设的特征库检测调用窗口内容截取函数的进程的合法性。如果第二检测模块60检测调用窗口内容截取函数的进程非法,则表明调用该窗口内容截取函数的进程可能是恶意进程,从而第二处理模块70拒绝该进程调用窗口内容截取函数获取目标窗口内容。如果第二检测模块60检测调用窗口内容截取函数的进程合法,则第二处理模块70允许当前进程调用窗口内容截取函数获取目标窗口内容。
需要说明的是,特征库中的具体内容可以根据应用需要进行设置,例如包括合法进程的白名单,和/或,包括非法进程的黑名单。
应当理解的是,本方实施例描述的窗口内容处理装置与上述结合图1-图2描述的光窗口内容处理方法对应,本发明的窗口内容处理装置的实施例中未披露的细节,在此不再赘述。
综上所述,本发明实施例的窗口内容处理装置,当检测目标窗口所属进程不是调用窗口内容截取函数的当前进程时,则根据特征库检测当前进程合法性,当当前进程合法时,允许调用窗口内容截取函数,当当前进程非法时,拒绝调用窗口内容截取函数,进一步避免了恶意软件对窗口内容的截取,保护了操作系统的安全。
为了实现上述实施例,本发明还提出了一种终端设备,图5是根据本发明一个实施例的终端设备的结构示意图。
如图5所示,本发明实施例的终端设备包括窗口内容处理装置1000。
其中,需要说明的是,本发明实施例中的窗口内容处理装置1000与上述实施例中参考图3-图4描述的窗口内容处理装置对应,在此不再赘述。
综上所述,本发明实施例的终端设备,首先监测模块监测操作系统内核提供的窗口内容截取函数是否被调用,接着运行模块在当前进程调用窗口内容截取函数时运行预设的与窗口内容截取函数对应的钩子函数,第一检测模块检测目标窗口所属进程是否是当前进程,第一处理模块在目标窗口所属进程是当前进程时,允许当前进程调用窗口内容截取函数。避免了恶意软件对窗口内容的截取,保护了操作系统的安全。
为了实现上述实施例,本发明还提出了另一种终端设备。
图6是根据本发明一个具体实施例的终端设备的结构示意图。
参见图6,终端设备2000可以包括以下一个或多个组件:处理器2001,存储器2002,电源电路2003,多媒体组件2004,音频组件2005,输入/输出(I/O)的接口2006,传感器组件2007,以及通信组件2008。
电源电路2003,用于为终端设备的各个电路或器件供电;存储器2002用于存储可执行程序代码;处理器2001通过读取存储器2002中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行以下步骤:
监测操作系统内核提供的窗口内容截取函数是否被调用。
如果监测到当前进程调用窗口内容截取函数获取目标窗口的内容,运行预设的与窗口内容截取函数对应的钩子函数。
检测目标窗口所属进程是否为当前进程。
如果检测获知目标窗口所属进程是当前进程,则允许当前进程调用窗口内容截取函数。
需要说明的是,前述对窗口内容处理方法实施例的解释说明也适用于该实施例的终端设备,其实现原理类似,此处不再赘述。
综上所述,本发明实施例的终端设备,首先监测模块监测操作系统内核提供的窗口内容截取函数是否被调用,接着运行模块在当前进程调用窗口内容截取函数时运行预设的与窗口内容截取函数对应的钩子函数,第一检测模块检测目标窗口所属进程是否是当前进程,第一处理模块在目标窗口所属进程是当前进程时,允许当前进程调用窗口内容截取函数。避免了恶意软件对窗口内容的截取,保护了操作系统的安全。
在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。