CN105447348A - 一种显示窗口的隐藏方法、装置及用户终端 - Google Patents
一种显示窗口的隐藏方法、装置及用户终端 Download PDFInfo
- Publication number
- CN105447348A CN105447348A CN201510786315.8A CN201510786315A CN105447348A CN 105447348 A CN105447348 A CN 105447348A CN 201510786315 A CN201510786315 A CN 201510786315A CN 105447348 A CN105447348 A CN 105447348A
- Authority
- CN
- China
- Prior art keywords
- display window
- function
- target display
- hidden
- window
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000001514 detection method Methods 0.000 claims description 40
- 238000011282 treatment Methods 0.000 claims description 21
- 230000007123 defense Effects 0.000 abstract 2
- 230000006870 function Effects 0.000 description 251
- 230000000694 effects Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
- G06F21/126—Interacting with the operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明实施例公开了一种显示窗口的隐藏方法、装置及用户终端。该方法包括:当检测到目标显示窗口时,调用系统应用层的第一隐藏函数对所述目标显示窗口进行隐藏;检测所述目标显示窗口是否被隐藏;若检测到所述目标显示窗口未被隐藏,则调用系统内核层的第二隐藏函数对所述目标显示窗口进行隐藏。采用本发明实施例,能够隐藏恶意软件所保护的显示窗口,增强了防御软件的防御效力。
Description
技术领域
本发明涉及软件技术领域,尤其涉及一种显示窗口的隐藏方法、装置及用户终端。
背景技术
当前用户终端可安装多种应用程序,每种应用程序可实现不同的功能,从而增强了用户体验。用户终端在对应用程序进行安装的过程中,难免会下载一些恶意软件。用户终端的操作系统多为基于窗口操作的系统,如WINDOW操作系统等。通常恶意软件会破坏当前正常运行的进程,以通过恶意方式获取消息或向用户通过窗口的方式推送消息,如在当前用户终端的显示窗口上恶意推送广告等,并且恶意软件所运行的显示窗口通常无法正常隐藏。
目前用户终端可通过安装防御软件的方式对恶意软件进行防御拦截,当恶意软件在运行时,用户终端即便监控到恶意软件所运行的显示窗口,也无法有效的将其隐藏,减弱了防御软件的防御效力。
发明内容
本发明实施例提供了一种显示窗口的隐藏方法、装置及用户终端。能够隐藏恶意软件所保护的显示窗口,增强了防御软件的防御效力。
一方面,本发明的实施例提供了一种显示窗口的隐藏方法,该方法可包括:
当检测到目标显示窗口时,调用系统应用层的第一隐藏函数对所述目标显示窗口进行隐藏;
检测所述目标显示窗口是否被隐藏;
若检测到所述目标显示窗口未被隐藏,则调用系统内核层的第二隐藏函数对所述目标显示窗口进行隐藏。
作为可选的实施例,当检测到目标显示窗口时,调用系统应用层的第一隐藏函数对所述目标显示窗口进行隐藏,包括:
当检测到目标显示窗口时,获取所述目标显示窗口的标识信息;
根据所述目标显示窗口的标识信息,设置所述第一隐藏函数的窗口句柄参数;
调用所述设置的第一隐藏函数对所述目标显示窗口进行隐藏。
作为可选的实施例,在所述调用所述设置的第一隐藏函数对所述目标显示窗口进行隐藏之前,所述方法还包括:
设置所述第一隐藏函数的窗口处理类型参数的参数值为隐藏参数值。
作为可选的实施例,所述检测所述目标显示窗口是否被隐藏,包括:
检测所述目标显示窗口的窗口状态是否为隐藏状态,若为隐藏状态,则确定所述目标显示窗口被隐藏;或
检测所述第一隐藏函数的函数执行结果,若所述函数执行结果表示成功,则确定所述目标显示窗口被隐藏。
作为可选的实施例,所述若检测到所述目标显示窗口未被隐藏,则调用系统内核层的第二隐藏函数对所述目标显示窗口进行隐藏,包括:
若检测到所述目标显示窗口未被隐藏,在系统内核层查找与所述第一隐藏函数对应的第二隐藏函数;
根据所述第一隐藏函数的所述窗口句柄参数,设置所述第二隐藏函数;
调用所述第二隐藏函数对所述目标显示窗口进行隐藏。
作为可选的实施例,当所述系统为WINDOWS操作系统时,所述第一隐藏函数为ShowWindow函数,所述第二隐藏函数为NtUserShowWindow函数。
另一方面,本发明的实施例提供了一种显示窗口的隐藏方法,该装置可包括:
第一调用模块,用于当检测到目标显示窗口时,调用系统应用层的第一隐藏函数对所述目标显示窗口进行隐藏;
检测模块,用于检测所述目标显示窗口是否被隐藏;
第二调用模块,用于若所述检测模块检测到所述目标显示窗口未被隐藏,则调用系统内核层的第二隐藏函数对所述目标显示窗口进行隐藏。
作为可选的实施例,所述第一调用模块包括:
获取单元,用于当检测到目标显示窗口时,获取所述目标显示窗口的标识信息;
第一设置单元,用于根据所述目标显示窗口的标识信息,设置所述第一隐藏函数的窗口句柄参数;
第一调用单元,用于调用所述设置的第一隐藏函数对所述目标显示窗口进行隐藏。
作为可选的实施例,所述第一调用模块还包括:
第二设置单元,用于设置所述第一隐藏函数的窗口处理类型参数的参数值为隐藏参数值。
作为可选的实施例,所述检测模块包括:
第一检测单元,用于检测所述目标显示窗口的窗口状态是否为隐藏状态,若为隐藏状态,则确定所述目标显示窗口被隐藏;
第二检测单元,用于检测所述第一隐藏函数的函数执行结果,若所述函数执行结果表示成功,则确定所述目标显示窗口被隐藏。
作为可选的实施例,所述第二调用模块包括:
查找单元,用于在系统内核层查找与所述第一隐藏函数对应的第二隐藏函数;
第三设置单元,用于根据所述第一隐藏函数的所述窗口句柄参数,设置所述第二隐藏函数;
第二调用单元,用于调用所述第二隐藏函数对所述目标显示窗口进行隐藏。
作为可选的实施例,当所述系统为WINDOWS操作系统时,所述第一隐藏函数为ShowWindow函数,所述第二隐藏函数为NtUserShowWindow函数。
又一方面,本发明的实施例提供了一种用户终端,该用户终端可包括用户接口、存储器及处理器,其中,所述存储器中存储一组程序代码,且所述处理器调用所述存储器中存储的程序代码,用于执行以下操作:
当检测到目标显示窗口时,调用系统应用层的第一隐藏函数对所述目标显示窗口进行隐藏;
检测所述目标显示窗口是否被隐藏;
若检测到所述目标显示窗口未被隐藏,则调用系统内核层的第二隐藏函数对所述目标显示窗口进行隐藏。
本发明实施例中,当检测到所要隐藏的目标显示窗口时,可调用系统应用层中的第一隐藏函数对目标显示窗口进行隐藏,在调用该第一隐藏函数后,检测目标显示窗口是否被隐藏,若检测到未被隐藏,则表明第一隐藏函数的执行结果失败,恶意软件中设置了钩子函数干涉第一隐藏函数的执行过程,则可直接调用系统内核层的第二隐藏函数对目标显示窗口进行隐藏,从而可规避存在的钩子函数对应用层内隐藏函数的干涉,直接隐藏受恶意软件保护的目标显示窗口,增强了防御软件的防御效力。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明中的一种显示窗口的隐藏方法的一实施例的流程图;
图2是本发明中的一种显示窗口的隐藏方法的另一实施例的流程图;
图3是本发明中的一种显示窗口的隐藏装置的一实施例的结构示意图;
图4是本发明中的一种显示窗口的隐藏装置的另一实施例的结构示意图;
图5是本发明中的一种用户终端的一实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面参考附图对本发明的实施例进行描述。其中,本发明实施例所述装置或终端包括可安装Windows操作系统或其他操作系统的用户设备,如手机、平板电脑、笔记本、穿戴式设备等。
参见图1,图1为本发明中的一种显示窗口的隐藏方法的一实施例的流程图。该方法可包括以下步骤。
步骤S101,当检测到目标显示窗口时,调用系统应用层的第一隐藏函数对所述目标显示窗口进行隐藏。
在一个实施例中,当用户终端检测到目标显示窗口时,可调用系统应用层的第一隐藏函数对目标显示窗口进行隐藏。具体的,用户终端可通过安装的第三方防御软件定期或根据用户指令对当前显示窗口进行检测,可通过检测显示窗口的推送源或显示窗口所显示的内容等检测是否存在目标显示窗口,也可通过检测用户对显示窗口的关闭指令是否被执行,判断当前是否存在目标显示窗口。举例说明,通过检测显示窗口的推送源,判断推送该显示窗口的应用程序是否为恶意的,可通过判断该应用程序是否出现在黑名单或检测该应用程序是否包含恶意标识等方式来判断该应用程序是否为恶意的;也可通过检测显示窗口所显示的内容判断该显示窗口是否为恶意应用程序推送的显示窗口,如窗口显示内容为非用户订阅的广告信息或其他包含恶意标识的信息时,则可确定该显示窗口为目标显示窗口;也可检测用户是否对当前显示窗口进行了关闭操作,若用户对其进行关闭操作后,该显示窗口未关闭或弹出其他窗口时,则确定该显示窗口为目标显示窗口,需对其进行隐藏。
在一个实施例中,当检测到目标显示窗口后,可通过调用系统应用层的第一隐藏函数对目标显示窗口进行隐藏。其中,用户终端或其第三方防御应用进程可通过调用系统应用层的第一隐藏函数后,第一隐藏函数调用系统内核层中与其对应的第二隐藏函数,完成对目标显示窗口的隐藏。若用户终端的操作系统为WINDOWS操作系统,则第一隐藏函数为ShowWindow函数。其中,可通过设置第一隐藏函数的参数,对第一隐藏函数进行调用。如通过设置第一隐藏函数的窗口句柄参数,能够使隐藏函数找到对应的目标显示窗口,通过设置第一隐藏函数的窗口处理类型参数,对窗口进行对应的处理。在本实施例中,可将窗口处理类型参数设置为0,即代表需对目标显示窗口进行隐藏。
步骤S102,检测所述目标显示窗口是否被隐藏。
在一个实施例中,用户终端或其第三防御应用进程在调用第一隐藏函数后,可检测目标显示窗口是否被隐藏。若目标显示窗口未被隐藏,则表明该目标显示窗口对应的恶意软件通过钩子(HOOK)进程对该窗口进行保护,即HOOK进程对第一隐藏函数的执行过程进行干涉,导致第一隐藏函数未能成功回调系统内核层与其对应的第二隐藏函数,从而对目标显示窗口隐藏失败。具体的,可通过在检测显示屏上是否还显示目标显示窗口或通过检测第一隐藏函数的函数执行结果,来判断目标显示窗口是否被成功隐藏。若检测到显示屏上仍存在目标显示窗口或第一隐藏函数反馈的函数执行结果为失败,则确定目标显示窗口未被隐藏。
步骤S103,若检测到所述目标显示窗口未被隐藏,则调用系统内核层的第二隐藏函数对所述目标显示窗口进行隐藏。
在一个实施例中,若通过上述方式不能够隐藏目标显示窗口时,则用户终端或其第三方防御应用进程可直接调用系统内核层的第二隐藏函数对目标显示函数进行隐藏,从而可规避HOOK函数对隐藏过程的干扰。具体的,若用户终端的第三方防御应用进程对第二隐藏函数进行调用,可预先设置该应用进程与系统内核层的接口,如第三方防御应用进程在对目标显示窗口隐藏失败时,可将目标显示窗口对应的窗口句柄信息传输至对应的第三方防御驱动,以第三方防御驱动为接口调用系统内核从的第二隐藏函数。可选的,若用户终端的操作系统为WINDOWS操作系统时,第二隐藏函数为NtUserShowWindow函数,其与应用层的ShowWindow函数相对应。
本发明实施例中,当检测到所要隐藏的目标显示窗口时,可调用系统应用层中的第一隐藏函数对目标显示窗口进行隐藏,在调用该第一隐藏函数后,检测目标显示窗口是否被隐藏,若检测到未被隐藏,则表明第一隐藏函数的执行结果失败,恶意软件中设置了钩子函数干涉第一隐藏函数的执行过程,则可直接调用系统内核层的第二隐藏函数对目标显示窗口进行隐藏,从而可规避存在的钩子函数对应用层内隐藏函数的干涉,直接隐藏受恶意软件保护的目标显示窗口,增强了防御软件的防御效力。
参见图2,图2为本发明中的一种显示窗口的隐藏方法的另一实施例的流程图。该方法可包括以下步骤。
步骤S201,当检测到目标显示窗口时,获取所述目标显示窗口的标识信息。
在一个实施例中,当用户终端检测到目标显示窗口时,可调用系统应用层的第一隐藏函数对目标显示窗口进行隐藏。具体的,用户终端可通过安装的第三方防御软件定期或根据用户指令对当前显示窗口进行检测,可通过检测显示窗口的推送源或显示窗口所显示的内容等检测是否存在目标显示窗口,也可通过检测用户对显示窗口的关闭指令是否被执行,判断当前是否存在目标显示窗口。举例说明,通过检测显示窗口的推送源,判断推送该显示窗口的应用程序是否为恶意的,可通过判断该应用程序是否出现在黑名单或检测该应用程序是否包含恶意标识等方式来判断该应用程序是否为恶意的;也可通过检测显示窗口所显示的内容判断该显示窗口是否为恶意应用程序推送的显示窗口,如窗口显示内容为非用户订阅的广告信息或其他包含恶意标识的信息时,则可确定该显示窗口为目标显示窗口;也可检测用户是否对当前显示窗口进行了关闭操作,若用户对其进行关闭操作后,该显示窗口未关闭或弹出其他窗口时,则确定该显示窗口为目标显示窗口,需对其进行隐藏。
在一个实施例中,当检测到目标显示窗口后,可进一步获取该目标显示窗口的标识信息。其中,该标识信息具备唯一性,即通过该标识信息可找到目标显示窗口。
步骤S202,根据所述目标显示窗口的标识信息,设置所述第一隐藏函数的窗口句柄参数。
在一个实施例中,可根据所获取的目标显示窗口的标识信息,设置第一隐藏函数的窗口句柄参数。其中,窗口句柄参数相当于函数所要作用的目标指针,通过设置隐藏函数的窗口句柄参数,能够找到目标显示窗口。其中,标识信息可具体为窗口句柄,即显示窗口已包括句柄信息;也可将显示窗口的其他唯一性信息转化为窗口句柄参数,对第一隐藏函数进行设置。
步骤S203,设置所述第一隐藏函数的窗口处理类型参数的参数值为隐藏参数值。
在一个实施例中,还可设置第一隐藏函数的窗口处理类型参数。其中,窗口处理类型可包括多种,如将窗口最大/最小化、显示窗口、隐藏窗口等。其中,每种窗口处理类型可预设预期对应的窗口处理类型参数,本发明实施例中,可将窗口处理类型为隐藏窗口对应的参数设置为0。即表明需对目标显示窗口进行隐藏。
步骤S204,调用所述设置的第一隐藏函数对所述目标显示窗口进行隐藏。
在一个实施例中,当检测到目标显示窗口后,可通过调用系统应用层的第一隐藏函数对目标显示窗口进行隐藏。其中,用户终端或其第三方防御应用进程可通过调用系统应用层的第一隐藏函数后,第一隐藏函数调用系统内核层中与其对应的第二隐藏函数,完成对目标显示窗口的隐藏。若用户终端的操作系统为WINDOWS操作系统,则第一隐藏函数为ShowWindow函数。可通过上述方式对隐藏函数的参数进行设置,从而启动隐藏函数的执行过程。
步骤S205,检测所述目标显示窗口是否被隐藏。
在一个实施例中,用户终端或其第三防御应用进程在调用第一隐藏函数后,可检测目标显示窗口是否被隐藏。若目标显示窗口未被隐藏,则表明该目标显示窗口对应的恶意软件通过钩子(HOOK)进程对该窗口进行保护,即HOOK进程对第一隐藏函数的执行过程进行干涉,导致第一隐藏函数未能成功回调系统内核层与其对应的第二隐藏函数,从而对目标显示窗口隐藏失败。具体的,可通过在检测显示屏上是否还显示目标显示窗口或通过检测第一隐藏函数的函数执行结果,来判断目标显示窗口是否被成功隐藏。若检测到显示屏上仍存在目标显示窗口或第一隐藏函数反馈的函数执行结果为失败,则确定目标显示窗口未被隐藏。
步骤S206,若检测到所述目标显示窗口未被隐藏,在系统内核层查找与所述第一隐藏函数对应的第二隐藏函数。
在一个实施例中,若通过上述方式不能够隐藏目标显示窗口时,则在系统内核层中查找与第一隐藏函数对应的第二隐藏函数。若用户终端的操作系统为WINDOWS操作系统时,第二隐藏函数为NtUserShowWindow函数,其与应用层的ShowWindow函数相对应。
步骤S207,根据所述第一隐藏函数的所述窗口句柄参数,设置所述第二隐藏函数。
步骤S208,调用所述第二隐藏函数对所述目标显示窗口进行隐藏。
在一个实施例中,用户终端或其第三方防御应用进程可直接调用系统内核层的第二隐藏函数对目标显示函数进行隐藏,从而可规避HOOK函数对隐藏过程的干扰。具体的,若用户终端的第三方防御应用进程对第二隐藏函数进行调用,可预先设置该应用进程与系统内核层的接口,如第三方防御应用进程在对目标显示窗口隐藏失败时,可将目标显示窗口对应的窗口句柄信息传输至对应的第三方防御驱动,以第三方防御驱动为接口调用系统内核从的第二隐藏函数。
本发明实施例中,当检测到所要隐藏的目标显示窗口时,可调用系统应用层中的第一隐藏函数对目标显示窗口进行隐藏,在调用该第一隐藏函数后,检测目标显示窗口是否被隐藏,若检测到未被隐藏,则表明第一隐藏函数的执行结果失败,恶意软件中设置了钩子函数干涉第一隐藏函数的执行过程,则可直接调用系统内核层的第二隐藏函数对目标显示窗口进行隐藏,从而可规避存在的钩子函数对应用层内隐藏函数的干涉,直接隐藏受恶意软件保护的目标显示窗口,增强了防御软件的防御效力,并提升了用户体验。
参见图3,图3是本发明中的一种显示窗口的隐藏装置的一实施例的结构示意图。该装置可包括:第一调用模块301、检测模块302、第二调用模块303。
其中,第一调用模块301,用于当检测模块302检测到目标显示窗口时,调用系统应用层的第一隐藏函数对所述目标显示窗口进行隐藏。
在一个实施例中,检测模块302可用于检测当前显示界面上是否存在目标显示窗口,当用户终端通过检测模块302检测到目标显示窗口时,第一调用模块301可调用系统应用层的第一隐藏函数对目标显示窗口进行隐藏。具体的,用户终端可通过安装的第三方防御软件定期或根据用户指令对当前显示窗口进行检测,可通过检测显示窗口的推送源或显示窗口所显示的内容等检测是否存在目标显示窗口,也可通过检测用户对显示窗口的关闭指令是否被执行,判断当前是否存在目标显示窗口。举例说明,通过检测显示窗口的推送源,判断推送该显示窗口的应用程序是否为恶意的,可通过判断该应用程序是否出现在黑名单或检测该应用程序是否包含恶意标识等方式来判断该应用程序是否为恶意的;也可通过检测显示窗口所显示的内容判断该显示窗口是否为恶意应用程序推送的显示窗口,如窗口显示内容为非用户订阅的广告信息或其他包含恶意标识的信息时,则可确定该显示窗口为目标显示窗口;也可检测用户是否对当前显示窗口进行了关闭操作,若用户对其进行关闭操作后,该显示窗口未关闭或弹出其他窗口时,则确定该显示窗口为目标显示窗口,需对其进行隐藏。
在一个实施例中,当检测模块302检测到目标显示窗口后,第一调用模块301可通过调用系统应用层的第一隐藏函数对目标显示窗口进行隐藏。其中,用户终端或其第三方防御应用进程可通过调用系统应用层的第一隐藏函数后,第一隐藏函数调用系统内核层中与其对应的第二隐藏函数,完成对目标显示窗口的隐藏。若用户终端的操作系统为WINDOWS操作系统,则第一隐藏函数为ShowWindow函数。其中,可通过设置第一隐藏函数的参数,对第一隐藏函数进行调用。如通过设置第一隐藏函数的窗口句柄参数,能够使隐藏函数找到对应的目标显示窗口,通过设置第一隐藏函数的窗口处理类型参数,对窗口进行对应的处理。在本实施例中,可将窗口处理类型参数设置为0,即代表需对目标显示窗口进行隐藏。
检测模块302,用于检测所述目标显示窗口是否被隐藏。
在一个实施例中,用户终端或其第三防御应用进程在通过第一调用模块301调用第一隐藏函数后,检测模块302可检测目标显示窗口是否被隐藏。若目标显示窗口未被隐藏,则表明该目标显示窗口对应的恶意软件通过钩子(HOOK)进程对该窗口进行保护,即HOOK进程对第一隐藏函数的执行过程进行干涉,导致第一隐藏函数未能成功回调系统内核层与其对应的第二隐藏函数,从而对目标显示窗口隐藏失败。具体的,可通过在检测显示屏上是否还显示目标显示窗口或通过检测第一隐藏函数的函数执行结果,来判断目标显示窗口是否被成功隐藏。若检测到显示屏上仍存在目标显示窗口或第一隐藏函数反馈的函数执行结果为失败,则确定目标显示窗口未被隐藏。
第二调用模块303,用于若所述检测模块302检测到所述目标显示窗口未被隐藏,则调用系统内核层的第二隐藏函数对所述目标显示窗口进行隐藏。
在一个实施例中,若通过上述方式不能够隐藏目标显示窗口时,则用户终端或其第三方防御应用进程可通过第二调用模块303直接调用系统内核层的第二隐藏函数对目标显示函数进行隐藏,从而可规避HOOK函数对隐藏过程的干扰。具体的,若用户终端的第三方防御应用进程对第二隐藏函数进行调用,可预先设置该应用进程与系统内核层的接口,如第三方防御应用进程在对目标显示窗口隐藏失败时,可将目标显示窗口对应的窗口句柄信息传输至对应的第三方防御驱动,以第三方防御驱动为接口调用系统内核从的第二隐藏函数。可选的,若用户终端的操作系统为WINDOWS操作系统时,第二隐藏函数为NtUserShowWindow函数,其与应用层的ShowWindow函数相对应。
本发明实施例中,当检测到所要隐藏的目标显示窗口时,可调用系统应用层中的第一隐藏函数对目标显示窗口进行隐藏,在调用该第一隐藏函数后,检测目标显示窗口是否被隐藏,若检测到未被隐藏,则表明第一隐藏函数的执行结果失败,恶意软件中设置了钩子函数干涉第一隐藏函数的执行过程,则可直接调用系统内核层的第二隐藏函数对目标显示窗口进行隐藏,从而可规避存在的钩子函数对应用层内隐藏函数的干涉,直接隐藏受恶意软件保护的目标显示窗口,增强了防御软件的防御效力。
参见图4,图4是本发明中的一种显示窗口的隐藏装置的另一实施例的结构示意图。该装置可包括:第一调用模块401、检测模块402、第二调用模块403。
其中,第一调用模块401,用于当检测到目标显示窗口时,调用系统应用层的第一隐藏函数对所述目标显示窗口进行隐藏。
本发明实施例中,第一调用模块401可包括获取单元4011、第一设置单元4012、第二设置单元4013、第一调用单元4014。
其中,获取单元4011,用于当检测到目标显示窗口时,获取所述目标显示窗口的标识信息。
在一个实施例中,当用户终端检测到目标显示窗口时,可调用系统应用层的第一隐藏函数对目标显示窗口进行隐藏。具体的,用户终端可通过安装的第三方防御软件定期或根据用户指令对当前显示窗口进行检测,可通过检测显示窗口的推送源或显示窗口所显示的内容等检测是否存在目标显示窗口,也可通过检测用户对显示窗口的关闭指令是否被执行,判断当前是否存在目标显示窗口。举例说明,通过检测显示窗口的推送源,判断推送该显示窗口的应用程序是否为恶意的,可通过判断该应用程序是否出现在黑名单或检测该应用程序是否包含恶意标识等方式来判断该应用程序是否为恶意的;也可通过检测显示窗口所显示的内容判断该显示窗口是否为恶意应用程序推送的显示窗口,如窗口显示内容为非用户订阅的广告信息或其他包含恶意标识的信息时,则可确定该显示窗口为目标显示窗口;也可检测用户是否对当前显示窗口进行了关闭操作,若用户对其进行关闭操作后,该显示窗口未关闭或弹出其他窗口时,则确定该显示窗口为目标显示窗口,需对其进行隐藏。
在一个实施例中,当检测到目标显示窗口后,,获取单元4011可进一步获取该目标显示窗口的标识信息。其中,该标识信息具备唯一性,即通过该标识信息可找到目标显示窗口。
第一设置单元4012,用于根据所述目标显示窗口的标识信息,设置所述第一隐藏函数的窗口句柄参数。
在一个实施例中,第一设置单元4012可根据所获取的目标显示窗口的标识信息,设置第一隐藏函数的窗口句柄参数。其中,窗口句柄参数相当于函数所要作用的目标指针,通过设置隐藏函数的窗口句柄参数,能够找到目标显示窗口。其中,标识信息可具体为窗口句柄,即显示窗口已包括句柄信息;也可将显示窗口的其他唯一性信息转化为窗口句柄参数,对第一隐藏函数进行设置。
第二设置单元4013,用于设置所述第一隐藏函数的窗口处理类型参数的参数值为隐藏参数值。
在一个实施例中,第二设置单元4013可设置第一隐藏函数的窗口处理类型参数。其中,窗口处理类型可包括多种,如将窗口最大/最小化、显示窗口、隐藏窗口等。其中,每种窗口处理类型可预设预期对应的窗口处理类型参数,本发明实施例中,可将窗口处理类型为隐藏窗口对应的参数设置为0。即表明需对目标显示窗口进行隐藏。
第一调用单元4014,用于调用所述设置的第一隐藏函数对所述目标显示窗口进行隐藏。
在一个实施例中,当检测到目标显示窗口后,第一调用单元4014可通过调用系统应用层的第一隐藏函数对目标显示窗口进行隐藏。其中,用户终端或其第三方防御应用进程可通过调用系统应用层的第一隐藏函数后,第一隐藏函数调用系统内核层中与其对应的第二隐藏函数,完成对目标显示窗口的隐藏。若用户终端的操作系统为WINDOWS操作系统,则第一隐藏函数为ShowWindow函数。可通过上述方式对隐藏函数的参数进行设置,从而启动隐藏函数的执行过程。
检测模块402,用于检测所述目标显示窗口是否被隐藏。
在一个实施例中,用户终端或其第三防御应用进程在通过第一调用单元4014调用第一隐藏函数后,检测模块402可检测目标显示窗口是否被隐藏。若目标显示窗口未被隐藏,则表明该目标显示窗口对应的恶意软件通过钩子(HOOK)进程对该窗口进行保护,即HOOK进程对第一隐藏函数的执行过程进行干涉,导致第一隐藏函数未能成功回调系统内核层与其对应的第二隐藏函数,从而对目标显示窗口隐藏失败。本发明实施例中,检测模块402还可包括第一检测单元和/或第二检测单元。具体的,可通过第一检测单元检测显示屏上是否还显示目标显示窗口或通过第二检测单元检测第一隐藏函数的函数执行结果,来判断目标显示窗口是否被成功隐藏。若检测到显示屏上仍存在目标显示窗口或第一隐藏函数反馈的函数执行结果为失败,则确定目标显示窗口未被隐藏。
第二调用模块403,用于若所述检测模块402检测到所述目标显示窗口未被隐藏,则调用系统内核层的第二隐藏函数对所述目标显示窗口进行隐藏。
本发明实施例中,第二调用模块403可包括查找单元4031、第三设置单元4032、第二调用单元4033。
查找单元4031,用于在系统内核层查找与所述第一隐藏函数对应的第二隐藏函数。
在一个实施例中,若通过上述方式不能够隐藏目标显示窗口时,则查找单元4031在系统内核层中查找与第一隐藏函数对应的第二隐藏函数。若用户终端的操作系统为WINDOWS操作系统时,第二隐藏函数为NtUserShowWindow函数,其与应用层的ShowWindow函数相对应。
第三设置单元4032,用于根据所述第一隐藏函数的所述窗口句柄参数,设置所述第二隐藏函数。
第二调用单元4033,用于调用所述第二隐藏函数对所述目标显示窗口进行隐藏。
在一个实施例中,用户终端或其第三方防御应用进程可通过第二调用单元4033直接调用系统内核层的第二隐藏函数对目标显示函数进行隐藏,从而可规避HOOK函数对隐藏过程的干扰。具体的,可通过第三设置单元4032根据第一隐藏函数的窗口句柄参数设置第二隐藏参数,从而使第二隐藏参数能够找到所要作用的目标显示窗口;若用户终端的第三方防御应用进程对第二隐藏函数进行调用,可预先设置该应用进程与系统内核层的接口,如第三方防御应用进程在对目标显示窗口隐藏失败时,可将目标显示窗口对应的窗口句柄信息传输至对应的第三方防御驱动,以第三方防御驱动为接口调用系统内核从的第二隐藏函数。
本发明实施例中,当检测到所要隐藏的目标显示窗口时,可调用系统应用层中的第一隐藏函数对目标显示窗口进行隐藏,在调用该第一隐藏函数后,检测目标显示窗口是否被隐藏,若检测到未被隐藏,则表明第一隐藏函数的执行结果失败,恶意软件中设置了钩子函数干涉第一隐藏函数的执行过程,则可直接调用系统内核层的第二隐藏函数对目标显示窗口进行隐藏,从而可规避存在的钩子函数对应用层内隐藏函数的干涉,直接隐藏受恶意软件保护的目标显示窗口,增强了防御软件的防御效力,并提升了用户体验。
参见图5,是本发明中的一种终端的一实施例的结构示意图。该终端可以包括:至少一个处理器501,如CPU,至少一个用户接口503,存储器504以及至少一个通信总线502。其中,通信总线502用于实现这些组件之间的连接通信,用户接口503可以包括显示屏(Display)及键盘(Keyboard),可选的,用户接口503还可以包括标准的有线接口及无线接口,存储器504可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatilememory),如至少一个磁盘存储器,可选的,存储器504还可以是至少一个位于远离前述处理器501的存储装置。其中,存储器504中存储一组程序代码,且处理器501调用存储器504中存储的程序代码,用于执行以下操作:
当检测到目标显示窗口时,调用系统应用层的第一隐藏函数对所述目标显示窗口进行隐藏;
检测所述目标显示窗口是否被隐藏;
若检测到所述目标显示窗口未被隐藏,则调用系统内核层的第二隐藏函数对所述目标显示窗口进行隐藏。
作为可选的实施例,当处理器501检测到目标显示窗口时,调用系统应用层的第一隐藏函数对所述目标显示窗口进行隐藏的具体方式为:
当检测到目标显示窗口时,获取所述目标显示窗口的标识信息;
根据所述目标显示窗口的标识信息,设置所述第一隐藏函数的窗口句柄参数;
调用所述设置的第一隐藏函数对所述目标显示窗口进行隐藏。
作为可选的实施例,在处理器501调用所述设置的第一隐藏函数对所述目标显示窗口进行隐藏之前,还用于调用存储器504中的存储代码以执行以下操作:
设置所述第一隐藏函数的窗口处理类型参数的参数值为隐藏参数值。
作为可选的实施例,处理器501检测所述目标显示窗口是否被隐藏的具体方式为:
检测所述目标显示窗口的窗口状态是否为隐藏状态,若为隐藏状态,则确定所述目标显示窗口被隐藏;或
检测所述第一隐藏函数的函数执行结果,若所述函数执行结果表示成功,则确定所述目标显示窗口被隐藏。
作为可选的实施例,若处理器501检测到所述目标显示窗口未被隐藏,则调用系统内核层的第二隐藏函数对所述目标显示窗口进行隐藏的具体方式为:
若检测到所述目标显示窗口未被隐藏,在系统内核层查找与所述第一隐藏函数对应的第二隐藏函数;
根据所述第一隐藏函数的所述窗口句柄参数,设置所述第二隐藏函数;
调用所述第二隐藏函数对所述目标显示窗口进行隐藏。
作为可选的实施例,当所述系统为WINDOWS操作系统时,所述第一隐藏函数为ShowWindow函数,所述第二隐藏函数为NtUserShowWindow函数。
本发明实施例中,当检测到所要隐藏的目标显示窗口时,可调用系统应用层中的第一隐藏函数对目标显示窗口进行隐藏,在调用该第一隐藏函数后,检测目标显示窗口是否被隐藏,若检测到未被隐藏,则表明第一隐藏函数的执行结果失败,恶意软件中设置了钩子函数干涉第一隐藏函数的执行过程,则可直接调用系统内核层的第二隐藏函数对目标显示窗口进行隐藏,从而可规避存在的钩子函数对应用层内隐藏函数的干涉,直接隐藏受恶意软件保护的目标显示窗口,增强了防御软件的防御效力,并提升了用户体验。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明实施例终端或设备中的单元或子单元可以根据实际需要进行合并、划分和删减。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述的实施方式,并不构成对该技术方案保护范围的限定。任何在上述实施方式的精神和原则之内所作的修改、等同替换和改进等,均应包含在该技术方案的保护范围之内。
Claims (10)
1.一种显示窗口的隐藏方法,其特征在于,包括:
当检测到目标显示窗口时,调用系统应用层的第一隐藏函数对所述目标显示窗口进行隐藏;
检测所述目标显示窗口是否被隐藏;
若检测到所述目标显示窗口未被隐藏,则调用系统内核层的第二隐藏函数对所述目标显示窗口进行隐藏。
2.如权利要求1所述方法,其特征在于,当检测到目标显示窗口时,调用系统应用层的第一隐藏函数对所述目标显示窗口进行隐藏,包括:
当检测到目标显示窗口时,获取所述目标显示窗口的标识信息;
根据所述目标显示窗口的标识信息,设置所述第一隐藏函数的窗口句柄参数;
调用所述设置的第一隐藏函数对所述目标显示窗口进行隐藏。
3.如权利要求2所述方法,其特征在于,在所述调用所述设置的第一隐藏函数对所述目标显示窗口进行隐藏之前,所述方法还包括:
设置所述第一隐藏函数的窗口处理类型参数的参数值为隐藏参数值。
4.如权利要求1-3任一所述方法,其特征在于,所述检测所述目标显示窗口是否被隐藏,包括:
检测所述目标显示窗口的窗口状态是否为隐藏状态,若为隐藏状态,则确定所述目标显示窗口被隐藏;或
检测所述第一隐藏函数的函数执行结果,若所述函数执行结果表示成功,则确定所述目标显示窗口被隐藏。
5.如权利要求2或3所述方法,其特征在于,所述若检测到所述目标显示窗口未被隐藏,则调用系统内核层的第二隐藏函数对所述目标显示窗口进行隐藏,包括:
若检测到所述目标显示窗口未被隐藏,在系统内核层查找与所述第一隐藏函数对应的第二隐藏函数;
根据所述第一隐藏函数的所述窗口句柄参数,设置所述第二隐藏函数;
调用所述第二隐藏函数对所述目标显示窗口进行隐藏。
6.如权利要求5所述方法,其特征在于,当所述系统为WINDOWS操作系统时,所述第一隐藏函数为ShowWindow函数,所述第二隐藏函数为NtUserShowWindow函数。
7.一种显示窗口的隐藏装置,其特征在于,包括:
第一调用模块,用于当检测到目标显示窗口时,调用系统应用层的第一隐藏函数对所述目标显示窗口进行隐藏;
检测模块,用于检测所述目标显示窗口是否被隐藏;
第二调用模块,用于若所述检测模块检测到所述目标显示窗口未被隐藏,则调用系统内核层的第二隐藏函数对所述目标显示窗口进行隐藏。
8.如权利要求7所述装置,其特征在于,所述第一调用模块包括:
获取单元,用于当检测到目标显示窗口时,获取所述目标显示窗口的标识信息;
第一设置单元,用于根据所述目标显示窗口的标识信息,设置所述第一隐藏函数的窗口句柄参数;
第一调用单元,用于调用所述设置的第一隐藏函数对所述目标显示窗口进行隐藏。
9.如权利要求8所述装置,其特征在于,所述第一调用模块还包括:
第二设置单元,用于设置所述第一隐藏函数的窗口处理类型参数的参数值为隐藏参数值。
10.如权利要求7-9任一所述装置,其特征在于,所述检测模块包括:
第一检测单元,用于检测所述目标显示窗口的窗口状态是否为隐藏状态,若为隐藏状态,则确定所述目标显示窗口被隐藏;
第二检测单元,用于检测所述第一隐藏函数的函数执行结果,若所述函数执行结果表示成功,则确定所述目标显示窗口被隐藏。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510786315.8A CN105447348B (zh) | 2015-11-13 | 2015-11-13 | 一种显示窗口的隐藏方法、装置及用户终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510786315.8A CN105447348B (zh) | 2015-11-13 | 2015-11-13 | 一种显示窗口的隐藏方法、装置及用户终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105447348A true CN105447348A (zh) | 2016-03-30 |
CN105447348B CN105447348B (zh) | 2019-04-05 |
Family
ID=55557518
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510786315.8A Active CN105447348B (zh) | 2015-11-13 | 2015-11-13 | 一种显示窗口的隐藏方法、装置及用户终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105447348B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106022111A (zh) * | 2016-07-13 | 2016-10-12 | 北京金山安全软件有限公司 | 隐藏弹出式窗口的处理方法、装置及电子设备 |
CN110309647A (zh) * | 2019-06-28 | 2019-10-08 | 北京金山安全软件有限公司 | 针对应用程序的处理方法、装置、电子设备及存储介质 |
CN113495651A (zh) * | 2020-03-20 | 2021-10-12 | 北京京东振世信息技术有限公司 | 一种窗口控制方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101136762A (zh) * | 2006-08-28 | 2008-03-05 | 中兴通讯股份有限公司 | 一种提高网管界面锁定安全性的实现方法 |
CN102722680A (zh) * | 2012-06-07 | 2012-10-10 | 腾讯科技(深圳)有限公司 | 清除恶意程序的方法和系统 |
CN102945341A (zh) * | 2012-10-23 | 2013-02-27 | 北京奇虎科技有限公司 | 一种拦截弹窗的方法和装置 |
CN103164654A (zh) * | 2013-03-28 | 2013-06-19 | 北京奇虎科技有限公司 | 一种在弹窗上进行信息提示的方法及用户界面显示装置 |
CN103795685A (zh) * | 2012-10-29 | 2014-05-14 | 珠海市君天电子科技有限公司 | 一种即时通讯工具的防盗方法及系统 |
-
2015
- 2015-11-13 CN CN201510786315.8A patent/CN105447348B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101136762A (zh) * | 2006-08-28 | 2008-03-05 | 中兴通讯股份有限公司 | 一种提高网管界面锁定安全性的实现方法 |
CN102722680A (zh) * | 2012-06-07 | 2012-10-10 | 腾讯科技(深圳)有限公司 | 清除恶意程序的方法和系统 |
CN102945341A (zh) * | 2012-10-23 | 2013-02-27 | 北京奇虎科技有限公司 | 一种拦截弹窗的方法和装置 |
CN103795685A (zh) * | 2012-10-29 | 2014-05-14 | 珠海市君天电子科技有限公司 | 一种即时通讯工具的防盗方法及系统 |
CN103164654A (zh) * | 2013-03-28 | 2013-06-19 | 北京奇虎科技有限公司 | 一种在弹窗上进行信息提示的方法及用户界面显示装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106022111A (zh) * | 2016-07-13 | 2016-10-12 | 北京金山安全软件有限公司 | 隐藏弹出式窗口的处理方法、装置及电子设备 |
CN106022111B (zh) * | 2016-07-13 | 2019-01-22 | 北京金山安全软件有限公司 | 隐藏弹出式窗口的处理方法、装置及电子设备 |
CN110309647A (zh) * | 2019-06-28 | 2019-10-08 | 北京金山安全软件有限公司 | 针对应用程序的处理方法、装置、电子设备及存储介质 |
CN110309647B (zh) * | 2019-06-28 | 2022-02-25 | 北京乐蜜科技有限责任公司 | 针对应用程序的处理方法、装置、电子设备及存储介质 |
CN113495651A (zh) * | 2020-03-20 | 2021-10-12 | 北京京东振世信息技术有限公司 | 一种窗口控制方法和装置 |
CN113495651B (zh) * | 2020-03-20 | 2024-05-21 | 北京京东振世信息技术有限公司 | 一种窗口控制方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105447348B (zh) | 2019-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9596257B2 (en) | Detection and prevention of installation of malicious mobile applications | |
EP3430556B1 (en) | System and method for process hollowing detection | |
KR101928908B1 (ko) | 멀웨어 스캐닝을 용이하게 하기 위하여 명성 표시자를 사용하기 위한 시스템 및 그 방법 | |
US9256739B1 (en) | Systems and methods for using event-correlation graphs to generate remediation procedures | |
US8918878B2 (en) | Restoration of file damage caused by malware | |
US20110173698A1 (en) | Mitigating false positives in malware detection | |
CN109214170B (zh) | 经由辅助文件分析进行恶意软件标识 | |
US7620990B2 (en) | System and method for unpacking packed executables for malware evaluation | |
US11288090B1 (en) | Methods, systems, and media for injecting code into embedded devices | |
US10735447B2 (en) | System and method of protecting a network | |
WO2019067689A1 (en) | METHODS FOR PROTECTING SOFTWARE HOOKS, AND ASSOCIATED COMPUTER SECURITY SYSTEMS AND APPARATUS | |
EP3926918A1 (en) | Network attack defense method and apparatus, device, system and storage medium | |
CN106127031A (zh) | 一种保护进程的方法、装置及电子设备 | |
CN105447348A (zh) | 一种显示窗口的隐藏方法、装置及用户终端 | |
US11388176B2 (en) | Visualization tool for real-time network risk assessment | |
CN105095758A (zh) | 锁屏应用程序处理方法、装置以及移动终端 | |
US8578495B2 (en) | System and method for analyzing packed files | |
CN107203417B (zh) | 一种数据清理方法、相关装置及电子设备 | |
US8677495B1 (en) | Dynamic trap for detecting malicious applications in computing devices | |
US11277436B1 (en) | Identifying and mitigating harm from malicious network connections by a container | |
US20200218832A1 (en) | Automatic Initiation of Execution Analysis | |
US11314870B1 (en) | Auto-containment of potentially vulnerable applications | |
CN107786413B (zh) | 一种浏览电子邮件的方法及用户终端 | |
US10331902B2 (en) | Data loss prevention | |
CN112100153A (zh) | 一种文件处理方法、装置、电子设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20181203 Address after: Room 105-53811, No. 6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province Applicant after: Zhuhai Leopard Technology Co.,Ltd. Address before: 519070, six level 601F, 10 main building, science and technology road, Tangjia Bay Town, Zhuhai, Guangdong. Applicant before: Zhuhai Juntian Electronic Technology Co.,Ltd. Applicant before: BEIJING KINGSOFT INTERNET SECURITY SOFTWARE Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |