一种窗口销毁拦截方法及装置制造方法及图纸

技术编号:13469069 阅读:33 留言:0更新日期:2016-08-05 01:34
本发明专利技术实施例公开了一种窗口销毁拦截方法及装置,应用于第一应用程序,该方案包括:第一应用程序获得该第二应用程序发送的窗口销毁指令,该窗口销毁指令携带第二应用程序标识以及待销毁应用程序信息;根据该待销毁应用程序信息,判断该窗口销毁指令是否为针对自身的窗口销毁指令;如果是,根据该第二应用程序的标识信息,确定该第二应用程序对应的第二进程路径;判断该第二进程路径是否包含于第一预设路径集合中;如果包含于,丢弃该窗口销毁指令。以实现应用程序的进程免于被其他应用程序通过销毁窗口方式关闭,保证应用程序的进程的正常运行。

【技术实现步骤摘要】

本专利技术涉及窗口保护
,特别涉及一种窗口销毁拦截方法及装置
技术介绍
安全软件一般会有优化功能,比如软件优化以及加速球等功能。该软件优化以及加速球的功能主要是结束除本软件外的其他软件的进程。其中,销毁窗口是结束软件进程的一种实现方法,因此,销毁窗口也可以达到软件优化的目的。面对着病毒以及恶意软件的猖狂,为了保证电子设备的安全,安全软件的种类也越来越多。并且,对于持有电子设备的用户来说,其往往会在电子设备中安装多款安全软件,这些安全软件都会对该电子设备(包含电子设备中安装的软件)进行安全监管。进而,对于这些安全软件来说,其会形成相互竞争的形式,这些存在竞争关系的软件可以互称为竞品软件。当某一安全软件开启软件优化的功能后,其软件优化功能也会强制结束其他安全软件的进程,为了保证电子设备的安全,用户往往是不希望这种情况发生的。此时,就需要尽量避免这种情况。现有技术中,安全软件避免被互为竞品软件的优化结束进程,主要是通过拦截结束自身进程的指令,进而实现自身进程的保护。然而,现有技术却忽略了安全软件通过销毁窗口的方式结束进程的问题。
技术实现思路
本专利技术实施例公开了一种窗口销毁拦截方法及装置,以实现应用程序的进程免于被其他应用程序通过销毁窗口方式关闭,保证应用程序的进程的正常运行。具体方案如下:一方面,本专利技术实施例提供了一种窗口销毁拦截方法,应用于第一应用程序,所述方法包括:r>获得第二应用程序发送的窗口销毁指令,所述窗口销毁指令携带所述第二应用程序的标识信息以及待销毁应用程序信息;根据所述待销毁应用程序信息,判断所述窗口销毁指令是否为针对自身的窗口销毁指令;如果是,根据所述第二应用程序的所述标识信息,确定所述第二应用程序对应的第二进程路径;判断所述第二进程路径是否包含于第一预设路径集合中;如果包含于,丢弃所述窗口销毁指令。较佳的,所述根据所述待销毁应用程序信息,判断所述窗口销毁指令是否为针对自身的窗口销毁指令,包括:根据所述待销毁应用程序信息,确定所述待销毁应用程序信息对应的第一进程标识符;判断所述第一进程标识符是否为自身进程标识符,如果是,表明所述窗口销毁指令为针对自身的窗口销毁指令。较佳的,所述根据所述待销毁应用程序信息,判断所述窗口销毁指令是否为针对自身的窗口销毁指令,包括:根据所述待销毁应用程序信息,确定所述待销毁应用程序信息对应的第一进程标识符;通过所述第一进程标识符,调用函数ZwQueryInformationProcess查询进程路径信息,确定所述待销毁应用程序信息对应的第一进程路径;判断所述第一进程路径是否包含于第二预设路径集合中,如果是,表明所述窗口销毁指令为针对自身的窗口销毁指令,其中,所述第二预设路径集合为禁止被竞品销毁窗口的应用程序的进程路径的集合。较佳的,在所述获得第二应用程序发送的窗口销毁指令之前,本专利技术实施例所提供的一种窗口销毁拦截方法还包括:依据系统服务描述符表SSDT,将预设销毁窗口函数替换为预设有相同参数的第一预设销毁窗口钩子函数,以使所述第一应用程序通过所述第一预设销毁窗口钩子函数获得所述第二应用程序发送的窗口销毁指令。较佳的,当所述预设销毁窗口函数为函数NtUserDestroyWindow时,所述预设销毁窗口钩子函数为钩子函数NewNtUserDestroyWindow;当所述预设销毁窗口函数为函数NtUserShowWindow时,所述预设销毁窗口钩子函数为钩子函数NewNtUserShowWindow;当所述预设销毁窗口函数为函数NtUserSetParent时,所述预设销毁窗口钩子函数为钩子函数NewNtUserSetParent;当所述预设销毁窗口函数为函数NtUserSetWindowPlacement时,所述预设销毁窗口钩子函数为钩子函数NewNtUserSetWindowPlacement;当所述预设销毁窗口函数为函数NtUserSetWindowPos时,所述预设销毁窗口钩子函数为钩子函数NewNtUserSetWindowPos;当所述预设销毁窗口函数为函数NtUserCallHwndParmLock时,所述预设销毁窗口钩子函数为钩子函数NewNtUserCallHwndParmLock;当所述预设销毁窗口函数为函数NtUSerSetLayeredWindowAttributes时,所述预设销毁窗口钩子函数为钩子函数NewNtUSerSetLayeredWindowAttributes。较佳的,当所述窗口销毁指令为所述第二应用程序利用函数DestroyWindow发送时,所述获得第二应用程序发送的窗口销毁指令,包括:通过作为所述预设销毁窗口钩子函数的钩子函数NewNtUserDestroyWindow获得所述第二应用程序发送的窗口销毁指令。较佳的,所述根据所述待销毁应用程序信息,确定所述待销毁应用程序信息对应的第一进程标识符,包括:调用内核函数ZwUserQueryWindow,查询所述待销毁应用程序信息对应的第一进程标识符。较佳的,所述根据所述第二应用程序的所述标识信息,确定所述第二应用程序对应的第二进程路径,包括:调用函数PsGetCurrentProcessId查询所述第二应用程序的所述标识信息对应的第二进程标识符;通过所述第二进程标识符,调用所述函数ZwQueryInformationProcess查询进程路径信息,确定所述第二应用程序对应的第二进程路径。较佳的,所述第一预设路径集合为属于所述第一应用程序的竞品的应用程序所对应的进程路径的集合。另一方面,本专利技术实施例所提供的一种窗口销毁拦截装置,应用于第一应用程序,所述装置包括:指令获得模块、指令判断模块、进程路径确定模块、进程路径判断模块和指令丢弃模块;所述指令获得模块:用于获得第二应用程序发送的窗口销毁指令,所述窗口销毁指令携带所述第二应用程序的标识信息以及待销毁应用程序信息;所述指令判断模块:用于根据所述待销毁应用程序信息,判断所述窗口销毁指令是否为针对自身的窗口销毁指令,如果是,触发所述进程路径确定模块;所述进程路径确定模块:用于根据所述第二应用程序的所述标识信息,确定所述第二应用程序对应的第二进程路径;所述进程路径判断模块:用于判断所述第二进程路径是否包含于第一预设路径集合中,如果包含于,触发所述指令丢弃模块;所述指令丢弃模块:用于丢弃所述窗本文档来自技高网...

【技术保护点】
一种窗口销毁拦截方法,其特征在于,应用于第一应用程序,所述方法包括:获得第二应用程序发送的窗口销毁指令,所述窗口销毁指令携带所述第二应用程序的标识信息以及待销毁应用程序信息;根据所述待销毁应用程序信息,判断所述窗口销毁指令是否为针对自身的窗口销毁指令;如果是,根据所述第二应用程序的所述标识信息,确定所述第二应用程序对应的第二进程路径;判断所述第二进程路径是否包含于第一预设路径集合中;如果包含于,丢弃所述窗口销毁指令。

【技术特征摘要】
1.一种窗口销毁拦截方法,其特征在于,应用于第一应用程序,所述方法
包括:
获得第二应用程序发送的窗口销毁指令,所述窗口销毁指令携带所述第二
应用程序的标识信息以及待销毁应用程序信息;
根据所述待销毁应用程序信息,判断所述窗口销毁指令是否为针对自身的
窗口销毁指令;
如果是,根据所述第二应用程序的所述标识信息,确定所述第二应用程序
对应的第二进程路径;
判断所述第二进程路径是否包含于第一预设路径集合中;
如果包含于,丢弃所述窗口销毁指令。
2.根据权利要求1所述的方法,其特征在于,所述根据所述待销毁应用程
序信息,判断所述窗口销毁指令是否为针对自身的窗口销毁指令,包括:
根据所述待销毁应用程序信息,确定所述待销毁应用程序信息对应的第一
进程标识符;
判断所述第一进程标识符是否为自身进程标识符,如果是,表明所述窗口
销毁指令为针对自身的窗口销毁指令。
3.根据权利要求1所述的方法,其特征在于,所述根据所述待销毁应用程
序信息,判断所述窗口销毁指令是否为针对自身的窗口销毁指令,包括:
根据所述待销毁应用程序信息,确定所述待销毁应用程序信息对应的第一
进程标识符;
通过所述第一进程标识符,调用函数ZwQueryInformationProcess查询进程路
径信息,确定所述待销毁应用程序信息对应的第一进程路径;
判断所述第一进程路径是否包含于第二预设路径集合中,如果是,表明所
述窗口销毁指令为针对自身的窗口销毁指令,其中,所述第二预设路径集合为
禁止被竞品销毁窗口的应用程序的进程路径的集合。
4.根据权利要求1-3任一项所述的方法,其特征在于,在所述获得第二应用
程序发送的窗口销毁指令之前,还包括:
依据系统服务描述符表SSDT,将预设销毁窗口函数替换为预设有相同参数
的第一预设销毁窗口钩子函数,以使所述第一应用程序通过所述第一预设销毁
窗口钩子函数获得所述第二应用程序发送的窗口销毁指令。
5.根据权利要求4所述的方法,其特征在于,
当所述预设销毁窗口函数为函数NtUserDestroyWindow时,所述预设销毁窗
口钩子函数为钩子函数NewNtUserDestroyWindow;
当所述预设销毁窗口函数为函数NtUserShowWindow时,所述预设销毁窗口
钩子函数为钩子函数NewNtUserShowWindow;
当所述预设销毁窗口函数为函数NtUserSetParent时,所述预设销毁窗口钩子
函数为钩子函数NewNtUserSetParent;
当所述预设销毁窗口函数为函数NtUserSetWindowPlacement时,所述预设销
毁窗口钩子函数为钩子函数NewNtUserSetWindowPlacement;
当...

【专利技术属性】
技术研发人员:李文靖
申请(专利权)人:北京金山安全软件有限公司
类型:发明
国别省市:北京;11

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

1