本发明属于计算机软件,尤其涉及一种基于hook的应用进程窗口行为识别防控方法及系统。
背景技术:
1、本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
2、在应用软件的项目需求中,通常需要准确识别窗口操作行为,确定当前正在展示的窗口、另存、打印和导出操作,跟踪标签页窗口的关闭和主窗口的退出。
3、发明人发现,现有方法通常利用windows枚举窗口的机制,启动多个线程,枚举相应的窗口,并和对应应用进程的标题特征值进行匹配,来确定当前窗口的操作行为,主要操作是在不断地找窗口,然后匹配标题,匹配成功后,认为识别到了窗口的操作行为,然而,通过枚举窗口线程加上匹配标题方式,来确定窗口,准确率低,需要多个线程不断的去查找窗口,性能低效。
技术实现思路
1、本发明为了解决上述问题,提供了一种基于hook的应用进程窗口行为识别防控方法及系统,所述方案基于事件hook回调函数的设置,通过监听不同窗口事件,来实现对应用进程窗口行为的识别防控,相对于传统的通过枚举窗口线程结合匹配标题的方式,本发明所述方案不需要利用多个线程重复查找窗口,有效提高了处理性能;同时,采用事件驱动的方式,能够有效提高窗口行为识别防控的效率和精度。
2、为了实现上述目的,本发明是通过如下的技术方案来实现:
3、第一方面,本发明提供了一种基于hook的应用进程窗口行为识别防控方法,包括:
4、实时监听用户触发的窗口事件;
5、判断窗口事件类型;其中,所述窗口事件类型包括标签页切换窗口事件、标签页关闭和主窗口退出窗口事件、以及另存、打印和导出操作窗口事件;
6、基于窗口事件类型的判断结果,执行当前窗口事件类型对应的预先设置的事件hook回调函数,获得窗口行为识别结果,以及基于所述识别结果进行窗口行为防控;
7、其中,所述事件hook回调函数,用于基于窗口事件确定对应的窗口句柄,基于窗口句柄获得当前窗口标题,基于获得的窗口标题进行窗口行为的识别防控。
8、进一步的,所述标签页切换窗口事件包括event_object_show、event_object_reorder以及event_object_focus事件;所述标签页关闭和主窗口退出窗口事件包括event_object_destroy事件;所述另存、打印和导出操作窗口事件包括event_object_show事件。
9、进一步的,当窗口事件类型为标签页切换窗口事件时,所执行的事件hook回调函数,具体执行如下处理过程:
10、基于监听到的窗口事件,获得对应的窗口句柄;
11、基于所述窗口句柄的父窗口对应的进程id,获取父窗口进程id的父进程的进程id;
12、获取所述窗口句柄的进程id或其父进程id对应的顶层窗口;
13、从所述顶层窗口中获取窗口标题;
14、基于获得的窗口标题和对应的父窗口进程id,获得窗口识别结果。
15、进一步的,当窗口事件类型为标签页关闭和主窗口退出窗口事件时,所执行的事件hook回调函数,具体执行如下处理过程:
16、基于监听到的窗口事件,获得对应的窗口句柄;
17、基于所述窗口句柄,从当前窗口中获得窗口标题;
18、基于应用进程特征值,进行标题匹配;
19、基于标题匹配结果,实现标签页关闭和主窗口退出的识别。
20、进一步的,当窗口事件类型为另存、打印和导出操作窗口事件时,所执行的事件hook回调函数,具体执行如下处理过程:
21、基于监听到的窗口事件,获得对应的窗口句柄;
22、基于所述窗口句柄,从当前窗口中获得窗口标题;
23、基于应用进程特征值,进行标题匹配;
24、基于标题匹配结果,实现另存、打印和导出操作的识别;
25、当识别为另存、打印和导出操作时,执行预设的防控措施。
26、进一步的,所述防控措施为发送窗口退出消息。
27、第二方面,本发明提供了一种基于hook的应用进程窗口行为识别防控系统,包括:
28、事件监听单元,其用于实时监听用户触发的窗口事件;
29、事件类型判别单元,其用于判断窗口事件类型;其中,所述窗口事件类型包括标签页切换窗口事件、标签页关闭和主窗口退出窗口事件、以及另存、打印和导出操作窗口事件;
30、识别防控单元,其用于基于窗口事件类型的判断结果,执行当前窗口事件类型对应的预先设置的事件hook回调函数,获得窗口行为识别结果,以及基于所述识别结果进行窗口行为防控;其中,所述事件hook回调函数,用于基于窗口事件确定对应的窗口句柄,基于窗口句柄获得当前窗口标题,基于获得的窗口标题进行窗口行为的识别防控。
31、第三方面,本发明提供了一种电子设备,包括存储器、处理器及存储在存储器上运行的计算机程序,所述处理器执行所述程序时实现所述的一种基于hook的应用进程窗口行为识别防控方法。
32、第四方面,本发明提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述的一种基于hook的应用进程窗口行为识别防控方法。
33、第五方面,本发明提供了一种计算机程序产品,包括软件代码,所述软件代码中的程序执行如上所述的一种基于hook的应用进程窗口行为识别防控方法。
34、与现有技术相比,本发明的有益效果是:
35、(1)本发明提供了一种基于hook的应用进程窗口行为识别防控方法及系统,所述方案基于事件hook回调函数的设置,通过监听不同窗口事件,来实现对应用进程窗口行为的识别防控,相对于传统的通过枚举窗口线程结合匹配标题的方式,本发明所述方案不需要利用多个线程重复查找窗口,有效提高了处理性能;同时,采用事件驱动的方式,能够有效提高窗口行为识别防控的效率和精度。
36、(2)区别于现有方案的轮询查找窗口,本发明采用监听的方式来找到预期的窗口,提高了窗口行为识别防控的效率和精度。
37、(3)本发明所述方案在标签页切换识别中支持单个进程和多个进程的应用,有效提高了所述方案的鲁棒性。
38、本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
1.一种基于hook的应用进程窗口行为识别防控方法,其特征在于,包括:
2.如权利要求1所述的一种基于hook的应用进程窗口行为识别防控方法,其特征在于,所述标签页切换窗口事件包括event_object_show、event_object_reorder以及event_object_focus事件;所述标签页关闭和主窗口退出窗口事件包括event_object_destroy事件;所述另存、打印和导出操作窗口事件包括event_object_show事件。
3.如权利要求1所述的一种基于hook的应用进程窗口行为识别防控方法,其特征在于,当窗口事件类型为标签页切换窗口事件时,所执行的事件hook回调函数,具体执行如下处理过程:
4.如权利要求1所述的一种基于hook的应用进程窗口行为识别防控方法,其特征在于,当窗口事件类型为标签页关闭和主窗口退出窗口事件时,所执行的事件hook回调函数,具体执行如下处理过程:
5.如权利要求1所述的一种基于hook的应用进程窗口行为识别防控方法,其特征在于,当窗口事件类型为另存、打印和导出操作窗口事件时,所执行的事件hook回调函数,具体执行如下处理过程:
6.如权利要求5所述的一种基于hook的应用进程窗口行为识别防控方法,其特征在于,所述防控措施为发送窗口退出消息。
7.一种基于hook的应用进程窗口行为识别防控系统,其特征在于,包括:
8.一种电子设备,包括存储器、处理器及存储在存储器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7任一项所述的一种基于hook的应用进程窗口行为识别防控方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任一项所述的一种基于hook的应用进程窗口行为识别防控方法。
10.一种计算机程序产品,包括软件代码,其特征在于,所述软件代码中的程序执行如权利要求1-7任一项所述的一种基于hook的应用进程窗口行为识别防控方法。
