CN106203115B - 一种应用程序的防护方法、装置及电子设备 - Google Patents
一种应用程序的防护方法、装置及电子设备 Download PDFInfo
- Publication number
- CN106203115B CN106203115B CN201610540023.0A CN201610540023A CN106203115B CN 106203115 B CN106203115 B CN 106203115B CN 201610540023 A CN201610540023 A CN 201610540023A CN 106203115 B CN106203115 B CN 106203115B
- Authority
- CN
- China
- Prior art keywords
- function
- application program
- terminate
- terminates
- program
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 224
- 230000008569 process Effects 0.000 claims abstract description 214
- 230000006870 function Effects 0.000 claims description 239
- 230000001681 protective effect Effects 0.000 claims description 6
- 230000005611 electricity Effects 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 abstract description 22
- 230000002155 anti-virotic effect Effects 0.000 abstract description 10
- 230000006399 behavior Effects 0.000 description 9
- 238000003860 storage Methods 0.000 description 7
- 241000700605 Viruses Species 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000037431 insertion Effects 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 2
- 241000283086 Equidae Species 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 210000003733 optic disk Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000006467 substitution reaction Methods 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
-
- 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/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Storage Device Security (AREA)
Abstract
本发明的实施例公开一种应用程序的防护方法、装置和电子设备,涉及计算机安全技术领域,为有效避免恶意程序通过异步过程调用APC机制将该应用程序恶意结束而发明。所述应用程序的防护方法,包括:拦截进程终止操作,并确定所述进程终止操作的目标进程是否为所述应用程序的进程;若是,进一步确定所述进程终止操作是否为所述应用程序的自结束终止操作;若是,获取所述进程终止操作的调用函数的函数地址和派发异步过程调用APC函数的函数地址;确定所述调用函数的函数地址和所述派发APC函数的函数地址是否相同;若相同,则停止所述进程终止操作。本发明适用于杀毒软件等安全类软件工具。
Description
技术领域
本发明涉及计算机安全技术领域,尤其涉及一种应用程序的防护方法、装置及电子设备。
背景技术
随着互联网技术的蓬勃发展,病毒、木马等恶意程序技术相应地层出不穷。为了有效保证计算机系统和数据安全,目前,用户通常会在计算机中安装杀毒类应用程序(即杀毒软件),从而对病毒、木马等恶意程序进行拦截、查杀、预警等处理,从而有效避免病毒、木马等恶意程序对于计算机安全的强大威胁。
恶意程序为了能够顺利在计算机系统中运行而不被杀毒软件发现,通常都会针对杀毒软件进行特定的技术性处理,从而躲避杀毒软件的拦截和查杀。个别恶意程序会利用Windows操作系统下的APC(Asynchronous Procedure Call,异步过程调用)机制将杀毒软件进程结束,即,使杀毒软件退出运行,从而躲避杀毒软件的拦截和查杀,进而对计算机系统和数据进行破坏。
因此,如何防止恶意程序利用APC机制将杀毒软件等应用程序恶意结束是一个亟待解决的问题。
发明内容
有鉴于此,本发明实施例提供一种应用程序的防护方法、装置及电子设备,能够有效避免恶意程序利用APC机制将该应用程序恶意结束。
第一方面,本发明实施例提供一种应用程序的防护方法,所述方法包括:
拦截进程终止操作,并确定所述进程终止操作的目标进程是否为所述应用程序的进程;
在所述进程终止操作的目标进程为所述应用程序的进程时,确定所述进程终止操作是否为所述应用程序的自结束终止操作;
若确定所述进程终止操作为所述应用程序的自结束终止操作,获取所述进程终止操作的调用函数的函数地址和派发异步过程调用APC函数的函数地址;
确定所述调用函数的函数地址和所述派发APC函数的函数地址是否相同;
若确定所述调用函数的函数地址和所述派发APC函数的函数地址相同,则停止所述进程终止操作。
结合第一方面,在第一方面的第一种实施方式中,所述拦截进程终止操作包括:
利用挂钩函数对进程终止函数的调用进行监视,从而在所述进程终止函数被调用时执行所述挂钩函数,从而拦截所述进程终止操作。
结合第一方面的第一种实施方式,在第一方面的第二种实施方式中:
所述确定所述进程终止操作的目标进程是否为所述应用程序的进程包括:
根据所述进程终止函数获取所述目标进程的句柄参数,根据所述句柄参数确定所述进程终止操作的目标进程是否为所述应用程序的进程;
和/或
所述确定所述进程终止操作是否为所述应用程序的自结束终止操作包括:
根据所述句柄参数确定所述进程终止操作是否为所述应用程序的自结束终止操作。
结合第一方面的第一种实施方式,在第一方面的第三种实施方式中:
所述获取所述进程终止操作的调用函数的函数地址包括:
调用内核函数RtlWalkFrameChain从所述进程终止函数的调用栈中获取所述进程终止函数的调用函数的函数地址;
和/或
所述获取派发APC函数的函数地址包括:
调用内核函数MmGetSystemRoutineAddress函数获取所述派发APC函数的函数地址。
结合第一方面或第一方面的第一至第三种实施方式中的任一种实施方式,在第一方面的第四种实施方式中,所述应用程序为具有恶意程序查杀功能的安全类应用程序。
第二方面,本发明实施例提供一种应用程序的防护装置,包括:
拦截单元,用于拦截进程终止操作;
第一确定单元,用于确定所述进程终止操作的目标进程是否为所述应用程序的进程;
第二确定单元,用于在所述第一确定单元确定所述进程终止操作的目标进程为所述应用程序的进程时,确定所述进程终止操作是否为所述应用程序的自结束终止操作;
获取单元,用于在所述第二确定单元确定所述进程终止操作为所述应用程序的自结束进程终止操作时,获取所述进程终止操作的调用函数的函数地址和派发APC函数的函数地址;
第三确定单元,用于确定所述调用函数的函数地址和所述派发APC函数的函数地址是否相同;
处理单元,用于在所述第三确定单元确定所述调用函数的函数地址和所述派发APC函数的函数地址相同时,停止所述进程终止操作。
结合第二方面,在第二方面的第一种实施方式中,所述拦截单元具体用于:
利用挂钩函数对进程终止函数的调用进行监视,从而在所述进程终止函数被调用时执行所述挂钩函数,从而拦截所述进程终止操作。
结合第二方面的第一种实施方式,在第二方面的第二种实施方式中:
所述第一确定单元具体用于:
根据所述进程终止函数获取所述目标进程的句柄参数,根据所述句柄参数确定所述进程终止操作的目标进程是否为所述应用程序的进程;
和/或
所述第二确定单元具体用于:
根据所述句柄参数确定所述进程终止操作是否为所述应用程序的自结束终止操作。
结合第二方面的第一种实施方式,在第二方面的第三种实施方式中:
所述获取单元具体用于:
调用内核函数RtlWalkFrameChain从所述进程终止函数的调用栈中获取所述进程终止函数的调用函数的函数地址;
和/或
调用内核函数MmGetSystemRoutineAddress函数获取所述派发APC函数的函数地址。
结合第二方面或第二方面的第一至第三种实施方式中的任一种实施方式,在第二方面的第四种实施方式中,所述应用程序为具有恶意程序查杀功能的安全类应用程序。
第三方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施方式所述的应用程序的防护方法。
本发明实施例提供的一种应用程序的防护方法、装置及电子设备,拦截进程终止操作,在确定所述进程终止操作的目标进程为所述应用程序的进程且所述进程终止操作为所述应用程序的自结束进程终止操作时,获取所述进程终止操作的调用函数的函数地址和派发APC函数的函数地址并确定两者是否相同,若两者相同则确定有恶意程序利用APC机制来恶意结束该应用程序,则停止该进程终止操作,即不在执行该进程终止操作,从而能够有效避免恶意程序利用APC机制将该应用程序恶意结束。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明的实施例的应用程序的防护方法的流程示意图;
图2为本发明的应用程序的防护装置的一个实施例的结构示意图;
图3为本发明电子设备一个实施例的结构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
为了使本领域技术人员更好的理解本发明,首先对本发明中所言的APC机制以及恶意程序利用APC机制恶意结束应用程序进行简要说明。
大体上说,Windows的APC机制实质上是一种对于应用软件(线程)的“软件中断”机制,而称之为“异步过程调用”确实更为贴切。比如,Windows系统中的N个线程,由CPU调度执行,如果设置某一个线程为警报标记,那么CPU就会优先执行这个线程,并调用它的APC回调函数,这就是一个异步过程调用,这个线程也称为APC线程。
现有技术中,为了防止杀毒软件等特定应用程序被异常关闭,会挂钩内核函数NtTerminateProcess函数,NtTerminateProcess函数为终止进程的函数,挂钩此函数可以实现对于操作者的进程终止行为进行拦截。对NtTerminateProcess挂钩后,一旦该函数被调用,即一旦有进程终止操作执行,则将执行该NtTermina teProcess函数的挂钩函数(也称钩子函数),挂钩函数会获取该NtTerminateProcess函数的所要终止的目标进程的路径,并根据目标进程的路径判断所需终止的应用程序是否是预先设定的特定应用程序,即不想被恶意结束的应用程序,若是,即可退出挂钩函数,不在执行原始的NtTerminateProcess函数,从而达到拦截的目的,避免特定应用程序被恶意结束。
而针对于特定应用程序的自结束操作,即该应用程序自己结束自己的行为,例如,该应用程序进程的自退出,用户关闭应用程序(即退出应用程序进程)等应用程序自己结束自己进程的行为。为了保证这种行为的顺利进行,避免被当成恶意结束行为而被拦截,现有技术中,挂钩函数可以进一步确定进程终止操作的操作者,如果确定操作者为该应用程序自身,就会放行不做拦截。
也就是说,现有技术中,NtTerminateProcess函数的挂钩函数在判断NtTerminateProcess函数的操作者和目标均为该特定应用程序时,是不进行拦截的,这样就会引发一个问题,给恶意程序以可乘之机,使得恶意程序可利用APC机制,将该特定应用程序恶意结束。
具体的,恶意程序可以插入一个APC线程到特定应用程序,并填充恶意代码到APC的回调函数,即填充一些结束特定应用程序的代码到回调函数。由于此APC线程是特定应用程序自身的线程,恶意程序只是利用APC机制把恶意代码插入到特定应用程序的可警报的线程上,这样CPU在调度特定应用程序这个线程的时候,就会执行APC回调函数,即调用恶意程序插入的恶意代码。
若恶意程序插入的恶意代码为恶意结束该应用程序的代码,在该代码执行时,即执行用于终止特定应用程序的进程终止操作时,上述的挂钩函数同样会进行拦截,但是,APC线程是属于该应用程序进程上的,挂钩函数所判断出的该进程终止操作的操作者和目标均为该特定应用程序进程,这样,挂钩函数对这种终止操作是不进行拦截的,挂钩函数无法区分是是恶意程序结束应用程序还是应用程序自结束,即使得恶意程序利用这种APC机制,轻易将特定应用程序恶意结束。
基于上述说明,本发明实施例提供一种应用程序的防护方法、装置及电子设备,能够有效避免恶意程序利用APC机制将该应用程序恶意结束。
图1为本发明的实施例的应用程序的防护方法的流程示意图,如图1所示,本实施例的应用程序的防护方法可以包括:
步骤101,拦截进程终止操作。
具体的,为了终止(即结束)某应用程序进程,操作系统一般将调用内核函数NtTerminateProcess,该函数可称为进程终止函数,通过执行该函数来结束进程。据此,本步骤中,可以挂钩该进程终止函数,即利用挂钩函数对进程终止函数的调用进行监视,一旦该进程终止函数被调用,即触发执行挂钩函数,从而在进程终止函数被调用时执行挂钩函数,达到拦截进程终止操作的目的。
步骤102,确定进程终止操作的目标进程是否为所要防护的应用程序进程。
如果是,执行步骤103,如果否,执行步骤104。
具体的,可以从NtTerminateProcess函数中获取到该进程终止函数所要终止的目标进程的句柄参数,根据句柄参数可得到目标进程的进程路径,根据进程路径即可确定进程终止函数所要终止的目标进程是否为所要防护的应用程序进程。
步骤103,确定进程终止操作是否为所要防护的应用程序的自结束终止操作。
如果是,执行步骤105,如果否,执行步骤104。
本步骤中,即确定进程终止操作的操作者是否为应用程序本身,即该操作是否为自结束终止操作。其中,自结束终止操作包括应用程序进程的自退出,用户退出该应用程序进程例如用户关闭该应用程序等等。
本步骤中,同样可利用所要终止的目标进程的句柄参数判断进程终止操作的操作者是否为应用程序本身,具体的,如果句柄参数值是0xffffffff,即可确定是程序的自身结束。
步骤104,解除拦截,使该进程终止操作正常执行。
即正常执行NtTerminateProcess函数。
步骤105,获取进程终止操作的调用函数的函数地址和派发APC函数的函数地址。
本步骤中,具体的,可获取进程终止函数NtTerminateProcess函数的调用函数的函数地址,例如,可以调用内核函数RtlWalkFrameChain从所述进程终止函数的调用栈中获取所述进程终止函数的调用函数的函数地址;这里可应用栈回溯技术,基于系统函数的调用是一个串行的关系,如a->b->c,这三个函数是从前向后的一种调用过程,进而一步一步找到各调用函数的函数地址,例如c函数中,找出栈上的a,b函数。关于栈回溯技术,本领域技术人员理应熟知,这里不做进一步详细说明。
可选的,可调用内核函数MmGetSystemRoutineAddress函数获取派发APC函数的函数地址。
应用程序的自终止操作,所调用的函数为非派发APC函数。而若是恶意程序利用APC机制恶意结束应用程序,NtTerminateProcess函数所调用的函数将是派发派发APC函数,据此,可根据NtTerminateProcess函数所调用的函数是否为派发APC函数,来区分是恶意程序利用APC机制结束应用程序进程,还是用户结束应用程序或者应用程序自退出,若是恶意程序恶意结束应用程序即可进行阻止。
步骤106,确定调用函数的函数地址和派发APC函数的函数地址是否相同。
若是,执行步骤107,若否,执行步骤104。
本步骤中,匹配调用函数的每一个函数地址和派发APC函数(KiDeliverAPC)的函数地址,如果相同,说明进程终止函数是调用了KiDeliverAPC函数,而恶意程序利用了APC机制插入恶意代码就会调用派发APC回调函数,因此,即可确定恶意程序想要恶意结束应用程序。反之,若两者地址不同,则可确定时应用程序的自终止操作,无需拦截停止,继续执行终止操作即可。
步骤107,停止进程终止操作,即不在执行进程终止函数,从而避免应用程序被恶意结束。
本发明实施例提供的一种应用程序的防护方法,拦截进程终止操作,在确定所述进程终止操作的目标进程为所述应用程序的进程且所述进程终止操作为所述应用程序的自结束进程终止操作时,获取所述进程终止操作的调用函数的函数地址和派发APC函数的函数地址并确定两者是否相同,若两者相同则确定有恶意程序利用APC机制来恶意结束该应用程序,则停止该进程终止操作,即不在执行该进程终止操作,从而能够有效避免恶意程序利用APC机制将该应用程序恶意结束。本发明实施例提供的防护方法,既能够有效避免恶意程序利用APC机制将该应用程序恶意结束,又不影响用户自我行为的退出应用程序和应用程序的自退出,有效保证应用程序的安全的同时可提升用户体验。
需要说明的是,一般来讲,恶意程序会针对杀毒软件等具有恶意程序查杀功能的安全类应用程序,利用APC机制恶意结束应用程序进程,因此,本发明实施例可应用对安全类应用程序的防护中,也可应用在安全类应用程序中,对这种恶意终止操作进行防控。当然,可以理解的是,本发明实施例不限于安全类应用程序,适用于对任何一种应用程序进行有效防护,有效避免恶意程序利用APC机制将该应用程序恶意结束。
与前述方法实施例相对应,本发明实施例还提供了一种应用程序的防护装置,如图2所示,本实施例的防护装置可以包括:
拦截单元10,用于拦截进程终止操作;
第一确定单元11,用于确定所述进程终止操作的目标进程是否为所述应用程序的进程;
第二确定单元12,用于在第一确定单元11确定所述进程终止操作的目标进程为所述应用程序的进程时,确定所述进程终止操作是否为所述应用程序的自结束终止操作;
获取单元13,用于在所第二确定单元12确定所述进程终止操作为所述应用程序的自结束进程终止操作时,获取所述进程终止操作的调用函数的函数地址和派发APC函数的函数地址;
第三确定单元14,用于确定所述调用函数的函数地址和所述派发APC函数的函数地址是否相同;
处理单元15,用于在第三确定单元14确定所述调用函数的函数地址和所述派发APC函数的函数地址相同时,停止所述进程终止操作。
本发明实施例提供的一种应用程序的防护装置,拦截进程终止操作,在确定所述进程终止操作的目标进程为所述应用程序的进程且所述进程终止操作为所述应用程序的自结束进程终止操作时,获取所述进程终止操作的调用函数的函数地址和派发APC函数的函数地址并确定两者是否相同,若两者相同则确定有恶意程序利用APC机制来恶意结束该应用程序,则停止该进程终止操作,即不在执行该进程终止操作,从而能够有效避免恶意程序利用APC机制将该应用程序恶意结束。
可选的,在本发明的一个实施例中,拦截单元10具体用于:
利用挂钩函数对进程终止函数的调用进行监视,从而在所述进程终止函数被调用时执行所述挂钩函数,从而拦截所述进程终止操作。
可选的,在本发明的一个实施例中,第一确定单元11具体用于:
根据所述进程终止函数获取所述目标进程的句柄参数,根据所述句柄参数确定所述进程终止操作的目标进程是否为所述应用程序的进程;
可选的,在本发明的一个实施例中,第二确定单元12具体用于:
根据所述句柄参数确定所述进程终止操作是否为所述应用程序的自结束终止操作。
可选的,在本发明的一个实施例中,获取单元13具体用于:
调用内核函数RtlWalkFrameChain从所述进程终止函数的调用栈中获取所述进程终止函数的调用函数的函数地址;
可选的,在本发明的一个实施例中,获取单元13具体用于:
调用内核函数MmGetSystemRoutineAddress函数获取所述派发APC函数的函数地址。
可选的,在本发明的一个实施例中,所述应用程序为具有恶意程序查杀功能的安全类应用程序。
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,″计算机可读介质″可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。
在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本发明实施例还提供一种电子设备,所述电子设备包含前述任一实施例所述的装置。
图3为本发明电子设备一个实施例的结构示意图,可以实现本发明图1所示实施例的流程,如图3所示,上述电子设备可以包括:壳体31、处理器32、存储器33、电路板34和电源电路35,其中,电路板34安置在壳体31围成的空间内部,处理器32和存储器33设置在电路板34上;电源电路35,用于为上述电子设备的各个电路或器件供电;存储器33用于存储可执行程序代码;处理器32通过读取存储器33中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的应用程序的防护方法。
处理器32对上述步骤的具体执行过程以及处理器32通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1所示实施例的描述,在此不再赘述。
该电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、应用程序的提供器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子设备。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (11)
1.一种应用程序的防护方法,其特征在于,所述方法包括:
拦截进程终止操作,并确定所述进程终止操作的目标进程是否为所述应用程序的进程;
在所述进程终止操作的目标进程为所述应用程序的进程时,确定所述进程终止操作是否为所述应用程序的自结束终止操作;其中,自结束终止操作包括应用程序进程的自退出,用户退出该应用程序进程;
若确定所述进程终止操作为所述应用程序的自结束终止操作,获取所述进程终止操作的调用函数的函数地址和派发异步过程调用APC函数的函数地址;
确定所述调用函数的函数地址和所述派发APC函数的函数地址是否相同;
若确定所述调用函数的函数地址和所述派发APC函数的函数地址相同,则停止所述进程终止操作。
2.根据权利要求1所述的方法,其特征在于,所述拦截进程终止操作包括:
利用挂钩函数对进程终止函数的调用进行监视,从而在所述进程终止函数被调用时执行所述挂钩函数,从而拦截所述进程终止操作。
3.根据权利要求2所述的方法,其特征在于,所述确定所述进程终止操作的目标进程是否为所述应用程序的进程包括:
根据所述进程终止函数获取所述目标进程的句柄参数,根据所述句柄参数确定所述进程终止操作的目标进程是否为所述应用程序的进程;
和/或
所述确定所述进程终止操作是否为所述应用程序的自结束终止操作包括:
根据所述句柄参数确定所述进程终止操作是否为所述应用程序的自结束终止操作。
4.根据权利要求2所述的方法,其特征在于,
所述获取所述进程终止操作的调用函数的函数地址包括:
调用内核函数RtlWalkFrameChain从所述进程终止函数的调用栈中获取所述进程终止函数的调用函数的函数地址;
和/或
所述获取派发APC函数的函数地址包括:
调用内核函数MmGetSystemRoutineAddress函数获取所述派发APC函数的函数地址。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述应用程序为具有恶意程序查杀功能的安全类应用程序。
6.一种应用程序的防护装置,其特征在于,包括:
拦截单元,用于拦截进程终止操作;
第一确定单元,用于确定所述进程终止操作的目标进程是否为所述应用程序的进程;
第二确定单元,用于在所述第一确定单元确定所述进程终止操作的目标进程为所述应用程序的进程时,确定所述进程终止操作是否为所述应用程序的自结束终止操作;其中,自结束终止操作包括应用程序进程的自退出,用户退出该应用程序进程;
获取单元,用于在所述第二确定单元确定所述进程终止操作为所述应用程序的自结束进程终止操作时,获取所述进程终止操作的调用函数的函数地址和派发APC函数的函数地址;
第三确定单元,用于确定所述调用函数的函数地址和所述派发APC函数的函数地址是否相同;
处理单元,用于在所述第三确定单元确定所述调用函数的函数地址和所述派发APC函数的函数地址相同时,停止所述进程终止操作。
7.根据权利要求6所述的装置,其特征在于,
所述拦截单元具体用于:
利用挂钩函数对进程终止函数的调用进行监视,从而在所述进程终止函数被调用时执行所述挂钩函数,从而拦截所述进程终止操作。
8.根据权利要求7所述的装置,其特征在于,
所述第一确定单元具体用于:
根据所述进程终止函数获取所述目标进程的句柄参数,根据所述句柄参数确定所述进程终止操作的目标进程是否为所述应用程序的进程;
和/或
所述第二确定单元具体用于:
根据所述句柄参数确定所述进程终止操作是否为所述应用程序的自结束终止操作。
9.根据权利要求7所述的装置,其特征在于,
所述获取单元具体用于:
调用内核函数RtlWalkFrameChain从所述进程终止函数的调用栈中获取所述进程终止函数的调用函数的函数地址;
和/或
调用内核函数MmGetSystemRoutineAddress函数获取所述派发APC函数的函数地址。
10.根据权利要求6至9任一项所述的装置,其特征在于,所述应用程序为具有恶意程序查杀功能的安全类应用程序。
11.一种电子设备,其特征在于,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述权利要求1-5中任一权利要求所述的应用程序的防护方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610540023.0A CN106203115B (zh) | 2016-07-11 | 2016-07-11 | 一种应用程序的防护方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610540023.0A CN106203115B (zh) | 2016-07-11 | 2016-07-11 | 一种应用程序的防护方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106203115A CN106203115A (zh) | 2016-12-07 |
CN106203115B true CN106203115B (zh) | 2019-04-09 |
Family
ID=57473918
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610540023.0A Active CN106203115B (zh) | 2016-07-11 | 2016-07-11 | 一种应用程序的防护方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106203115B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108399084B (zh) * | 2017-02-08 | 2021-02-12 | 中科创达软件股份有限公司 | 一种应用程序的运行方法及系统 |
CN108446553B (zh) * | 2018-03-22 | 2021-11-12 | 北京金山安全软件有限公司 | 一种进程保护的方法、装置及电子设备 |
CN109829270B (zh) * | 2018-12-27 | 2022-04-15 | 奇安信科技集团股份有限公司 | 应用程序防护方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101414341A (zh) * | 2007-10-15 | 2009-04-22 | 北京瑞星国际软件有限公司 | 一种软件自我保护的方法 |
CN101901321A (zh) * | 2010-06-04 | 2010-12-01 | 华为终端有限公司 | 终端防御恶意程序的方法、装置及系统 |
CN102831344A (zh) * | 2012-07-27 | 2012-12-19 | 北京奇虎科技有限公司 | 一种进程的处理方法和装置 |
CN102982283A (zh) * | 2012-11-27 | 2013-03-20 | 蓝盾信息安全技术股份有限公司 | 一种杀死受保护的恶意计算机进程的系统及方法 |
CN105574146A (zh) * | 2015-12-15 | 2016-05-11 | 北京奇虎科技有限公司 | 网址拦截方法及装置 |
CN105590060A (zh) * | 2015-12-21 | 2016-05-18 | 北京金山安全软件有限公司 | 一种目标应用程序的保护方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9596250B2 (en) * | 2009-04-22 | 2017-03-14 | Trusted Knight Corporation | System and method for protecting against point of sale malware using memory scraping |
US9037823B2 (en) * | 2012-09-14 | 2015-05-19 | Intel Corporation | Protecting IAT/EAT hooks from rootkit attacks using new CPU assists |
-
2016
- 2016-07-11 CN CN201610540023.0A patent/CN106203115B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101414341A (zh) * | 2007-10-15 | 2009-04-22 | 北京瑞星国际软件有限公司 | 一种软件自我保护的方法 |
CN101901321A (zh) * | 2010-06-04 | 2010-12-01 | 华为终端有限公司 | 终端防御恶意程序的方法、装置及系统 |
CN102831344A (zh) * | 2012-07-27 | 2012-12-19 | 北京奇虎科技有限公司 | 一种进程的处理方法和装置 |
CN102982283A (zh) * | 2012-11-27 | 2013-03-20 | 蓝盾信息安全技术股份有限公司 | 一种杀死受保护的恶意计算机进程的系统及方法 |
CN105574146A (zh) * | 2015-12-15 | 2016-05-11 | 北京奇虎科技有限公司 | 网址拦截方法及装置 |
CN105590060A (zh) * | 2015-12-21 | 2016-05-18 | 北京金山安全软件有限公司 | 一种目标应用程序的保护方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106203115A (zh) | 2016-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11716348B2 (en) | Malicious script detection | |
US9256730B2 (en) | Threat detection for return oriented programming | |
US10706149B1 (en) | Detecting delayed activation malware using a primary controller and plural time controllers | |
CN106203115B (zh) | 一种应用程序的防护方法、装置及电子设备 | |
CN103019719B (zh) | 一种弹窗拦截装置和方法 | |
CN105844146B (zh) | 一种保护驱动程序的方法、装置及电子设备 | |
Feth et al. | Flexible data-driven security for android | |
CN109669835B (zh) | MySQL数据库监控方法、装置、设备及可读存储介质 | |
US20190095616A1 (en) | Methods for protecting software hooks, and related computer security systems and apparatus | |
US20160055333A1 (en) | Protecting software application | |
CN107273194A (zh) | 任务执行方法和终端设备 | |
CN105095763B (zh) | 漏洞防御方法及装置、电子设备 | |
CN108810014A (zh) | 攻击事件告警方法及装置 | |
CN106203119B (zh) | 隐藏光标的处理方法、装置及电子设备 | |
Heartfield et al. | Protection against semantic social engineering attacks | |
CN106161373A (zh) | 一种安全防护信息提示方法、安全监控装置以及系统 | |
CN105447348B (zh) | 一种显示窗口的隐藏方法、装置及用户终端 | |
CN107368738A (zh) | 一种智能设备的防Root方法及装置 | |
CN106650410A (zh) | 一种安卓应用的权限控制方法和装置 | |
CN106131805A (zh) | 一种信息发送的方法和终端 | |
CN105653975B (zh) | App运行控制方法及装置 | |
CN106022015B (zh) | 一种防止进程暂停的方法、装置及电子设备 | |
CN106203118B (zh) | 修改插入标记闪烁时间的处理方法、装置及电子设备 | |
CN106909838A (zh) | 一种拦截系统调用的方法及装置 | |
CN104978518B (zh) | 一种拦截pc端获取移动设备屏幕布局操作的方法及系统 |
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: 20190117 Address after: 519031 Room 105-53811, No. 6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province Applicant after: Zhuhai Leopard Technology Co.,Ltd. Address before: 100085 East District, Second Floor, 33 Xiaoying West Road, Haidian District, Beijing Applicant before: BEIJING KINGSOFT INTERNET SECURITY SOFTWARE Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |