恶意进程结束方法及装置与流程

文档序号:11865208阅读:298来源:国知局
恶意进程结束方法及装置与流程

本申请涉及通信技术领域,尤其涉及一种恶意进程结束方法及装置。



背景技术:

随着互联网技术的快速发展,病毒、木马等恶意程序技术层出不穷,恶意程序为了自身的存活,会对自身进程做各种安全防护,比如不能结束它的进程,不能删除它的文件等。

现有杀毒软件结束恶意进程技术方案中,先调用内核函数NtOpenProcess打开进程,取得进程句柄,由进程句柄为参数,调用内核函数NtTerminateProcess结束进程。这就会存在被恶意程序挂突破的可能,比如挂钩NtOpenProcess函数或者NtTerminateProcess函数,在杀毒软件判断打开的进程或者结束的进程是否为恶意程序自身时,就会拒绝操作,让上述方案结束进程功能失效,影响杀毒软件结束恶意进程的效果。



技术实现要素:

本申请旨在至少在一定程度上解决相关技术中的技术问题之一。

为此,本申请的第一个目的在于提出一种恶意进程结束方法,该方法用于结束终端设备上的恶意进程,提高杀毒软件结束恶意进程的效果。

本申请的第二个目的在于提出一种恶意进程结束装置。

为达上述目的,本申请第一方面实施例提出了一种恶意进程结束方法,包括:查询获取终端设备上所有有效线程的线程标识;根据所述有效线程的线程标识查询获取待结束的目标进程以及属于所述目标进程的目标线程的线程结构体;将所述目标线程的线程结构体作为参数,调用线程结束内核函数来结束所述目标线程。

进一步的,所述将所述目标线程的线程结构体作为参数,调用线程结束内核函数来结束所述目标线程之后,还包括:

判断所述线程结束内核函数是否返回成功;

若所述线程结束内核函数未返回成功,则将所述目标线程设置为系统线程,并在所述目标线程中插入APC回调函数,使得所述终端设备的中央处理器CPU优先调度所述目标线程,并触发APC回调函数结束所述目标线程。

进一步的,所述查询获取终端设备上所有有效线程的线程标识,包括:

获取所有线程标识;

根据所述线程标识查询所述终端设备,判断所述终端设备上是否存在所述线程标识对应的线程结构体;

若所述终端设备上存在所述线程标识对应的线程结构体,则确定所述线程标识对应的线程为有效线程。

进一步的,所述查询获取终端设备上所有有效线程的线程标识,还包括:

若所述终端设备上不存在所述线程标识对应的线程结构体,则确定所述线程标识对应的线程为无效线程。

进一步的,所述根据所述有效线程的线程标识查询获取目标进程以及属于所述目标进程的目标线程的线程结构体,包括:

根据所述有效线程的线程标识查询获取所述有效线程所属的进程的进程标识以及进程结构体;

判断所述进程标识与预设的目标进程标识是否匹配;

若所述进程标识与预设的目标进程标识匹配,则确定所述进程标识对应的进程为目标进程,确定属于所述目标进程的有效线程为目标线程。

进一步的,所述根据所述有效线程的线程标识查询获取目标进程以及属于所述目标进程的目标线程的线程结构体,还包括:

若所述进程标识与预设的目标进程标识不匹配,则确定所述进程标识对应的进程为非目标进程。

进一步的,所述将所述目标线程设置为系统线程,包括:

获取所述目标线程的线程结构体中的线程类型字段,所述线程类型字段用于标识所述目标线程是否为系统线程;

将所述线程类型字段的值设置为0X10,以使CPU根据所述线程类型字段将所述目标线程识别为系统线程。

本申请实施例的恶意进程结束方法,首先获取终端设备上所有有效线程的线程标识,根据有效线程的线程标识查询获取待结束的目标进程以及属于所述目标进程的目标线程的线程结构体,从而实现对目标进程的彻底结束,提高杀毒软件结束恶意进程的效果,以提高杀毒软件的可靠性和安全性。

为达上述目的,本申请第二方面实施例提出了一种恶意进程结束装置,包括:查询模块,用于查询获取终端设备上所有有效线程的线程标识;获取模块,用于根据有效线程的线程标识查询获取待结束的目标进程以及属于所述目标进程的目标线程的线程结构体;调用模块,用于将所述目标线程的线程结构体作为参数,调用线程结束内核函数来结束所述目标线程。

进一步的,所述的恶意进程结束装置还包括:

判断模块,用于判断所述线程结束内核函数是否返回成功;

设置模块,用于在所述线程结束内核函数未返回成功时,将所述目标线程设置为系统线程,并在所述目标线程的线程结构体中插入APC回调函数,使得所述终端设备的中央处理器CPU优先调度所述目标线程,并触发APC回调函数结束所述目标线程。

进一步的,所述查询模块,包括:

第一获取单元,用于获取所有线程标识;

第二判断单元,用于根据所述线程标识查询所述终端设备,判断所述终端设备上是否存在所述线程标识对应的线程结构体;

第二确定单元,用于在所述终端设备上存在所述线程标识对应的线程结构体时,确定所述线程标识对应的线程为有效线程。

进一步的,所述查询模块,还包括:

第三确定单元,用于在所述终端设备上不存在所述线程标识对应的线程结构体时,确定所述线程标识对应的线程为无效线程。

进一步的,所述获取模块,包括:

查询单元,用于根据所述有效线程的线程标识查询获取所述有效线程所属的进程的进程标识以及进程结构体;

第一判断单元,用于判断所述进程标识与预设的目标进程标识是否匹配;

第一确定单元,用于在所述进程标识与预设的目标进程标识匹配时,确定所述进程标识对应的进程为目标进程,确定属于所述目标进程的有效线程为目标线程。

进一步的,所述获取模块,还包括:

第四确定单元,用于在所述进程标识与预设的目标进程标识不匹配时,确定所述进程标识对应的进程为非目标进程。

进一步的,所述设置模块,包括:

第二获取单元,用于获取所述目标线程的线程结构体中的线程类型字段,所述线程类型字段用于标识所述目标线程是否为系统线程;

设置单元,用于将所述线程类型字段的值设置为0X10,以使CPU根据所述线程类型字段将所述目标线程识别为系统线程。

本申请实施例的恶意进程结束装置,通过查询模块查询获取终端设备上所有有效线程的线程标识;获取模块根据有效线程的线程标识查询获取待结束的目标进程以及属于所述目标进程的目标线程的线程结构体;调用模块获取终端设备上待结束的目标进程以及属于所述目标进程的目标线程的线程结构体,从而实现对目标进程的彻底结束,提高杀毒软件结束恶意进程的效果,以提高杀毒软件的可靠性和安全性。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1是本申请一个实施例的恶意进程结束方法的流程图;

图2是本申请另一个实施例的恶意进程结束方法的流程图;

图3是本申请另一个实施例的恶意进程结束方法的流程图;

图4是本申请另一个实施例的恶意进程结束方法的流程图;

图5是本申请一个实施例的恶意进程结束装置的结构示意图;

图6是本申请另一个实施例的恶意进程结束装置的结构示意图;

图7是本申请另一个实施例的恶意进程结束装置的结构示意图;

图8是本申请另一个实施例的恶意进程结束装置的结构示意图;

图9是本申请另一个实施例的恶意进程结束装置的结构示意图;

图10是本申请另一个实施例的恶意进程结束装置的结构示意图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。

下面参考附图描述本申请实施例的恶意进程结束方法及装置。

图1是本申请一个实施例的恶意进程结束方法的流程图。

如图1所示,该恶意进程结束方法包括:

步骤101,查询获取终端设备上所有有效线程的线程标识。

本发明提供的恶意进程结束方法的执行主体为恶意进程结束装置,恶意进程结束装置具体可以为毒霸等杀毒软件,或者安装有毒霸等杀毒软件的终端设备。

步骤102,根据有效线程的线程标识查询获取待结束的目标进程以及属于所述目标进程的目标线程的线程结构体。

其中,用户根据自身的需求在终端设备上安装了至少一个应用或程序,其中部分应用或程序可能感染了病毒、木马等恶意程序,病毒、木马等恶意程序的进程为待结束的目标进程,为了结束目标进程,需要先在用户使用的终端设备上获取待结束的目标进程以及从终端设备上所有有效线程中获取属于目标进程的目标线程的线程结构体。

另外,若从终端设备上未获取到待结束的目标进程以及属于目标进程的目标线程的线程结构体,则表明该终端设备未感染病毒、木马等恶意程序。

步骤103,将所述目标线程的线程结构体作为参数,调用线程结束内核函数来结束所述目标线程。

具体的,恶意进程结束装置可以将目标线程的线程结构体作为参数,调用NtTerminateThread内核函数来结束目标线程。

本申请实施例的恶意进程结束方法,首先获取终端设备上所有有效线程的线程标识,根据有效线程的线程标识查询获取待结束的目标进程以及属于所述目标进程的目标线程的线程结构体,从而实现对目标进程的彻底结束,提高杀毒软件结束恶意进程的效果,以提高杀毒软件的可靠性和安全性。

图2是本申请另一个实施例的恶意进程结束方法的流程图。

如图2所示,针对图1所示实施例,步骤103之后,还可以包括:

步骤104,判断所述线程结束内核函数是否返回成功。

若线程结束内核函数返回成功,则表明目标线程结束成功。恶意进程结束装置可以继续调用线程结束内核函数结束其它目标线程。

若线程结束内核函数返回失败,则表明目标线程结束失败。恶意进程结束装置需要对当前目标线程进行设置,使得终端设备的中央处理器CPU能够优先调用当前目标线程并结束当前目标线程,然后继续调用线程结束内核函数结束其它目标线程。

步骤105,若所述线程结束内核函数未返回成功,则将所述目标线程设置为系统线程,并在所述目标线程的线程结构体中插入APC回调函数,使得所述终端设备的中央处理器CPU优先调度所述目标线程,并触发APC回调函数结束所述目标线程。

具体的,在线程结束内核函数未返回成功时,恶意进程结束装置可以先获取所述目标线程的线程结构体中的线程类型字段,所述线程类型字段用于标识所述目标线程是否为系统线程;将所述线程类型字段的值设置为0X10,以使CPU根据所述线程类型字段将所述目标线程识别为系统线程;然后在所述目标线程的线程结构体中插入APC回调函数,使得所述终端设备的中央处理器CPU优先调度所述目标线程,并触发APC回调函数结束所述目标线程。

其中,线程类型字段具体可以为SysThreadFlag字段。将该字段的值设置为0X10后,中央处理器CPU就能够将目标线程识别为系统线程。由于系统线程优先级很高,处于报警状态,中央处理器CPU会优先调用。

另外,恶意进程结束装置调用内核函数KeInsertQueueApc可以在所述目标线程的线程结构体中插入一个APC回调函数,当中央处理器优先调度该目标线程时,就会触发APC回调函数,APC回调函数中调用的PsTerminateSystemThread函数就可以把目标线程退出,即可结束目标线程。

本申请实施例的恶意进程结束方法,首先获取终端设备上所有有效线程的线程标识,根据有效线程的线程标识查询获取待结束的目标进程以及属于所述目标进程的目标线程的线程结构体;在调用线程结束内核函数结束目标线程失败后,将所述目标线程设置为系统线程,并在所述目标线程的线程结构体中插入APC回调函数,使得所述终端设备的中央处理器CPU优先调度所述目标线程,并触发APC回调函数结束所述目标线程。从而实现对目标进程的彻底结束,提高杀毒软件结束恶意进程的效果,以提高杀毒软件的可靠性和安全性。

图3是本申请另一个实施例的恶意进程结束方法的流程图。

如图3所示,针对图1所示实施例,步骤102具体可以包括:

步骤1021,根据所述有效线程的线程标识查询获取所述有效线程所属的进程的进程标识以及进程结构体。

其中,有效线程为终端设备上具有对应的线程结构体的线程。

具体的,恶意进程结束装置可以根据有效线程的线程标识,调用内核函数IoThreadToProcess查询有效线程是属于哪一个进程,并返回一个进程结构体。进程结构体中会保存有进程标识。其中,有效线程的线程标识具体可以为线程身份标识(Identification,ID)等可以唯一标识线程的标识。进程标识可以为进程ID等可以唯一标识进程的标识。

步骤1022,判断所述进程标识与预设的目标进程标识是否匹配。

步骤1023,若所述进程标识与预设的目标进程标识匹配,则确定所述进程标识对应的进程为目标进程,确定属于所述目标进程的有效线程为目标线程。

其中,若所述进程标识与预设的目标进程标识不匹配,则确定所述进程标识对应的进程为非目标进程。

本申请实施例的恶意进程结束方法,首先查询获取终端设备上所有有效线程的线程标识;根据所述有效线程的线程标识查询获取所述有效线程所属的进程的进程标识以及进程结构体;在所述进程标识与预设的目标进程标识匹配时,确定所述进程标识对应的进程为目标进程,确定属于所述目标进程的有效线程为目标线程,从而实现对目标进程的彻底结束,提高杀毒软件结束恶意进程的效果,以提高杀毒软件的可靠性和安全性。

图4是本申请另一个实施例的恶意进程结束方法的流程图。

如图4所示,针对图1所示实施例,步骤101具体可以包括:

步骤1011,获取所有线程标识。

其中,每一个线程都有一个ID值,线程ID值取值可以是0-65536,且是4的倍数。

步骤1012,根据所述线程标识查询所述终端设备,判断所述终端设备上是否存在所述线程标识对应的线程结构体。

步骤1013,若所述终端设备上存在所述线程标识对应的线程结构体,则确定所述线程标识对应的线程为有效线程。

具体的,恶意进程结束装置可以从0到65536,且每次递增4搜索,调用内核函数PsLookupThreadByThreadId由线程ID转为线程结构体,如果该函数返回成功,则表明终端设备上存在所述线程标识对应的线程结构体,说明搜索到的线程ID是有效的。

如果该函数返回失败,则表明终端上不存在所述线程标识对应的线程结构体,说明搜索到的线程ID是无效的。

本申请实施例的恶意进程结束方法,首先获取所有线程标识;根据所述线程标识查询所述终端设备,判断所述终端设备上是否存在所述线程标识对应的线程结构体;若所述终端设备上存在所述线程标识对应的线程结构体,则确定所述线程标识对应的线程为有效线程;根据所述有效线程的线程标识查询获取所述有效线程所属的进程的进程标识以及进程结构体;在所述进程标识与预设的目标进程标识匹配时,确定所述进程标识对应的进程为目标进程,确定属于所述目标进程的有效线程为目标线程,从而实现对目标进程的彻底结束,提高杀毒软件结束恶意进程的效果,以提高杀毒软件的可靠性和安全性。

为了实现上述实施例,本申请还提出一种恶意进程结束装置。

图5是本申请一个实施例的恶意进程结束装置的结构示意图。

如图5所示,该恶意进程结束装置包括:

查询模块51,用于查询获取终端设备上所有有效线程的线程标识;

获取模块52,用于根据有效线程的线程标识查询获取待结束的目标进程以及属于所述目标进程的目标线程的线程结构体;

调用模块53,用于将所述目标线程的线程结构体作为参数,调用线程结束内核函数来结束所述目标线程。

进一步的,如图6所示,图6是本申请另一个实施例的恶意进程结束装置的结构示意图,该恶意进程结束装置还包括:

判断模块54,用于判断所述线程结束内核函数是否返回成功;

设置模块55,用于在所述线程结束内核函数未返回成功时,将所述目标线程设置为系统线程,并在所述目标线程的线程结构体中插入APC回调函数,使得所述终端设备的中央处理器CPU优先调度所述目标线程,并触发APC回调函数结束所述目标线程。

进一步的,设置模块55可以包括:第二获取单元和设置单元。

第二获取单元,用于获取所述目标线程的线程结构体中的线程类型字段,所述线程类型字段用于标识所述目标线程是否为系统线程;

设置单元,用于将所述线程类型字段的值设置为0X10,以使CPU根据所述线程类型字段将所述目标线程识别为系统线程。

需要说明的是,前述对恶意进程结束方法实施例的解释说明也适用于该实施例的恶意进程结束装置,此处不再赘述。

本申请实施例的恶意进程结束装置,通过查询模块获取终端设备上所有有效线程的线程标识,获取模块根据有效线程的线程标识查询获取待结束的目标进程以及属于所述目标进程的目标线程的线程结构体;调用模块获取终端设备上待结束的目标进程以及属于所述目标进程的目标线程的线程结构体;在调用模块结束目标线程失败后,设置模块将所述目标线程设置为系统线程,并在所述目标线程的线程结构体中插入APC回调函数,使得所述终端设备的中央处理器CPU优先调度所述目标线程,并触发APC回调函数结束所述目标线程。从而实现对目标进程的彻底结束,提高杀毒软件结束恶意进程的效果,以提高杀毒软件的可靠性和安全性。

图7是本申请另一个实施例的恶意进程结束装置的结构示意图,如图7所示,基于图5所示实施例,获取模块52,包括:

查询单元521,用于根据所述有效线程的线程标识查询获取所述有效线程所属的进程的进程标识以及进程结构体;

第一判断单元522,用于判断所述进程标识与预设的目标进程标识是否匹配;

第一确定单元523,用于在所述进程标识与预设的目标进程标识匹配时,确定所述进程标识对应的进程为目标进程,确定属于所述目标进程的有效线程为目标线程。

进一步的,如图8所示,图8是本申请另一个实施例的恶意进程结束装置的结构示意图,所述获取模块52,还包括:第四确定单元524,用于在所述进程标识与预设的目标进程标识不匹配时,确定所述进程标识对应的进程为非目标进程。

需要说明的是,前述对恶意进程结束方法实施例的解释说明也适用于该实施例的恶意进程结束装置,此处不再赘述。

本申请实施例的恶意进程结束装置,首先查询获取终端设备上所有有效线程的线程标识;根据所述有效线程的线程标识查询获取所述有效线程所属的进程的进程标识以及进程结构体;在所述进程标识与预设的目标进程标识匹配时,确定所述进程标识对应的进程为目标进程,确定属于所述目标进程的有效线程为目标线程;在调用线程结束内核函数结束目标线程失败后,将所述目标线程设置为系统线程,并在所述目标线程的线程结构体中插入APC回调函数,使得所述终端设备的中央处理器CPU优先调度所述目标线程,并触发APC回调函数结束所述目标线程。从而实现对目标进程的彻底结束,提高杀毒软件结束恶意进程的效果,以提高杀毒软件的可靠性和安全性。

图9是本申请另一个实施例的恶意进程结束装置的结构示意图,如图9所示,基于图5所示实施例,查询模块51包括:

第一获取单元511,用于获取所有线程标识;

第二判断单元512,用于根据所述线程标识查询所述终端设备,判断所述终端设备上是否存在所述线程标识对应的线程结构体;

第二确定单元513,用于在所述终端设备上存在所述线程标识对应的线程结构体时,确定所述线程标识对应的线程为有效线程。

进一步的,如图10所示,图10是本申请另一个实施例的恶意进程结束装置的结构示意图,查询模块51还包括:第三确定单元514,用于在所述终端设备上不存在所述线程标识对应的线程结构体时,确定所述线程标识对应的线程为无效线程。

需要说明的是,前述对恶意进程结束方法实施例的解释说明也适用于该实施例的恶意进程结束装置,此处不再赘述。

本申请实施例的恶意进程结束装置,首先获取所有线程标识;根据所述线程标识查询所述终端设备,判断所述终端设备上是否存在所述线程标识对应的线程结构体;若所述终端设备上存在所述线程标识对应的线程结构体,则确定所述线程标识对应的线程为有效线程;根据所述有效线程的线程标识查询获取所述有效线程所属的进程的进程标识以及进程结构体;在所述进程标识与预设的目标进程标识匹配时,确定所述进程标识对应的进程为目标进程,确定属于所述目标进程的有效线程为目标线程;在调用线程结束内核函数结束目标线程失败后,将所述目标线程设置为系统线程,并在所述目标线程的线程结构体中插入APC回调函数,使得所述终端设备的中央处理器CPU优先调度所述目标线程,并触发APC回调函数结束所述目标线程。从而实现对目标进程的彻底结束,提高杀毒软件结束恶意进程的效果,以提高杀毒软件的可靠性和安全性。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请各个实施例中的各功能单元可以集成在一个第一处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1