线程的保护方法、装置及电子设备制造方法及图纸

技术编号:14151737 阅读:68 留言:0更新日期:2016-12-11 14:54
本发明专利技术公开了一种线程的保护方法、装置及电子设备,其中,线程的保护方法包括:监控目标线程是否接收到暂停指令;当确定目标线程接收到暂停指令时,利用钩子函数挂钩与目标线程对应的预设函数;判断目标线程对应的进程路径是否在预设目录下;如果目标线程对应的进程路径在预设目录下,则执行对目标线程的保护操作。本发明专利技术实施例的线程的保护方法、装置及电子设备,通过钩子函数挂钩恶意程序暂停目标线程时需要调用的预设函数,在监控到有恶意程序暂停目标线程时,对目标线程进行保护,防止恶意程序暂停杀毒软件的所有线程,从而保证系统信息安全。

【技术实现步骤摘要】

本专利技术涉及计算机
,尤其涉及一种线程的保护方法、装置及电子设备
技术介绍
随着互联网技术发展,病毒,木马等恶意程序技术层出不穷。有的恶意软件为了自身存活,利用各种恶意手段对杀毒软件进行攻击,例如结束或暂停杀毒软件的进程,删除杀毒软件安装目录下的文件等。其中,有一种方法是暂停杀毒软件进程中的所有线程,暂停所有线程会导致进程处于不工作状态,相当于结束了杀毒软件的进程。相关技术中,可通过挂钩一个内核函数,或者挂钩发送通信函数来实现保护对应的进程。但是,上述方法无法保护恶意程序结束杀毒软件的线程。
技术实现思路
本专利技术旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本专利技术的第一个目的在于提出一种线程的保护方法,该方法能够防止恶意程序暂停杀毒软件的所有线程,从而保证系统信息安全。本专利技术的第二个目的在于提出一种线程的保护装置。本专利技术的第三个目的在于提出一种电子设备。为实现上述目的,本专利技术第一方面实施例提出了一种线程的保护方法,包括以下步骤:监控目标线程是否接收到暂停指令;当确定所述目标线程接收到所述暂停指令时,利用钩子函数挂钩与所述目标线程对应的预设函数;判断所述目标线程对应的进程路径是否在预设目录下;如果所述目标线程对应的进程路径在所述预设目录下,则执行对所述目标线程的保护操作。可选的,利用钩子函数挂钩与所述目标线程对应的预设函数,包括:从系统服务描述符表SSDT中查找所述预设函数的地址;建立所述钩子函数,并将所述钩子函数的地址设置为所述预设函数的地址,以挂钩所述预设函数。可选的,判断所述目标线程对应的进程路径是否在预设目录下,包括:获取所述目标线程的线程句柄;根据所述线程句柄获取所述目标进程的进程句柄;根据所述进程句柄获取所述进程路径;判断所述进程路径是否在预设目录下。可选的,根据所述线程句柄获取所述目标进程的进程句柄,包括:根据所述线程句柄获取所述目标线程的线程体结构地址;根据所述线程体结构地址获取所述目标线程所在的进程体结构;根据所述进程体结构获取所述进程句柄。可选的,执行对所述目标线程的保护操作,包括:利用所述钩子函数向所述暂停指令的发起主体返回拒绝状态;或者利用所述钩子函数向所述暂停指令的发起主体返回暂停成功的假状态;或者利用所述钩子函数执行所述预设函数,暂停所述目标线程,并在向所述暂停指令的发起主体返回暂停成功状态之后,恢复所述目标线程。为实现上述目的,本专利技术第二方面实施例提出了一种线程的保护装置,包括:监控模块,用于监控目标线程是否接收到暂停指令;挂钩模块,用于当确定所述目标线程接收到所述暂停指令时,利用钩子函数挂钩与所述目标线程对应的预设函数;判断模块,用于判断所述目标线程对应的进程路径是否在预设目录下;执行模块,用于如果所述目标线程对应的进程路径在所述预设目录下,则执行对所述目标线程的保护操作。可选的,所述挂钩模块,包括:查找子模块,用于从系统服务描述符表SSDT中查找所述预设函数的地址;建立子模块,用于建立所述钩子函数,并将所述钩子函数的地址设置为所述预设函数的地址,以挂钩所述预设函数。可选的,所述判断模块,包括:第一获取子模块,用于获取所述目标线程的线程句柄;第二获取子模块,用于获取根据所述线程句柄获取所述目标进程的进程句柄;第三获取子模块,用于获取根据所述进程句柄获取所述进程路径;判断子模块,用于判断所述进程路径是否在预设目录下。可选的,所述第二获取子模块,用于:根据所述线程句柄获取所述目标线程的线程体结构地址;根据所述线程体结构地址获取所述目标线程所在的进程体结构;根据所述进程体结构获取所述进程句柄。可选的,所述执行模块,用于:利用所述钩子函数向所述暂停指令的发起主体返回拒绝状态;或者利用所述钩子函数向所述暂停指令的发起主体返回暂停成功的假状态;或者利用所述钩子函数执行所述预设函数,暂停所述目标线程,并在向所述暂停指令的发起主体返回暂停成功状态之后,恢复所述目标线程。为实现上述目的,本专利技术第三方面实施例提出了一种电子设备,该电子设备包括处理器、存储器、通信接口和总线;所述处理器、所述存储器和所述通信接口通过所述总线连接并完成相互间的通信;所述存储器存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行以下步骤:监控目标线程是否接收到暂停指令;当确定所述目标线程接收到所述暂停指令时,利用钩子函数挂钩与所述目标线程对应的预设函数;判断所述目标线程对应的进程路径是否在预设目录下;如果所述目标线程对应的进程路径在所述预设目录下,则执行对所述目标线程的保护操作。为实现上述目的,本专利技术第四方面实施例提出了一种存储介质,其中,所述存储介质用于存储应用程序,所述应用程序用于在运行时执行本专利技术所述的一种线程的保护方法。为实现上述目的,本专利技术第五方面实施例提出了一种应用程序,其中,所述应用程序用于在运行时执行本专利技术所述的一种线程的保护方法。在本专利技术中,通过钩子函数挂钩恶意程序暂停目标线程时需要调用的预设函数,在监控到有恶意程序暂停目标线程时,对目标线程进行保护,防止恶意程序暂停杀毒软件的所有线程,从而保证系统信息安全。本专利技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术的实践了解到。附图说明图1是根据本专利技术一个实施例的线程的保护方法的流程图;图2是根据本专利技术一个实施例的线程的保护装置的结构示意图;图3是根据本专利技术一个实施例的电子设备的结构示意图。具体实施方式下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本专利技术,而不能理解为对本专利技术的限制。下面参考附图描述本专利技术实施例的线程的保护方法、装置及电子设备。图1是根据本专利技术一个实施例的线程的保护方法的流程图,如图1所示,该方法包括:S101、监控目标线程是否接收到暂停指令。首先,先介绍下恶意程序暂停目标线程的过程。恶意程序可先在应用层调用SuspendThread函数,然后调用ZwSuspendThread函数,进而在内核层调用NtSuspendThread函数,最终通过系统暂停目标线程。在本实施例中,目标线程主要是杀毒软件的线程。系统为即操作系统,如WINDOWS。因此,若要防止恶意程序暂停目标线程,需要对目标线程进行监控,监控其是否接收到来自恶意程序的暂停指令。S102、当确定目标线程接收到暂停指令时,利用钩子函数挂钩与目标线程对应的预设函数。具体地,可从SSDT(System Services Descriptor Table,系统服务描述符表)中查找预设函数的地址。然后建立钩子函数,并将钩子函数的地址设置为预设函数的地址,以挂钩预设函数。举例来说,可从SSDT中查找到函数NtSuspendThread的地址,并保存该地址。然后,建立一个钩子函数NewNtSuspendThread,将钩子函数的地址替换为函数NtSuspendThread的地址,从而实现对函数NtSuspendThread的挂钩。S103、判断目标线程对应的进程路径是否在预设目录下。在利用钩子函数挂钩与目标线程对应的预设函数之本文档来自技高网...
线程的保护方法、装置及电子设备

【技术保护点】
一种线程的保护方法,其特征在于,包括以下步骤:监控目标线程是否接收到暂停指令;当确定所述目标线程接收到所述暂停指令时,利用钩子函数挂钩与所述目标线程对应的预设函数;判断所述目标线程对应的进程路径是否在预设目录下;如果所述目标线程对应的进程路径在所述预设目录下,则执行对所述目标线程的保护操作。

【技术特征摘要】
1.一种线程的保护方法,其特征在于,包括以下步骤:监控目标线程是否接收到暂停指令;当确定所述目标线程接收到所述暂停指令时,利用钩子函数挂钩与所述目标线程对应的预设函数;判断所述目标线程对应的进程路径是否在预设目录下;如果所述目标线程对应的进程路径在所述预设目录下,则执行对所述目标线程的保护操作。2.如权利要求1所述的方法,其特征在于,利用钩子函数挂钩与所述目标线程对应的预设函数,包括:从系统服务描述符表SSDT中查找所述预设函数的地址;建立所述钩子函数,并将所述钩子函数的地址设置为所述预设函数的地址,以挂钩所述预设函数。3.如权利要求1所述的方法,其特征在于,判断所述目标线程对应的进程路径是否在预设目录下,包括:获取所述目标线程的线程句柄;根据所述线程句柄获取所述目标进程的进程句柄;根据所述进程句柄获取所述进程路径;判断所述进程路径是否在预设目录下。4.如权利要求3所述的方法,其特征在于,根据所述线程句柄获取所述目标进程的进程句柄,包括:根据所述线程句柄获取所述目标线程的线程体结构地址;根据所述线程体结构地址获取所述目标线程所在的进程体结构;根据所述进程体结构获取所述进程句柄。5.如权利要求1所述的方法,其特征在于,执行对所述目标线程的保护操作,包括:利用所述钩子函数向所述暂停指令的发起主体返回拒绝状态;或者利用所述钩子函数向所述暂停指令的发起主体返回暂停成功的假状态;或者利用所述钩子函数执行所述预设函数,暂停所述目标线程,并在向所述暂停指令的发起主体返回暂停成功状态之后,恢复所述目标线程。6.一种线程的保护装置,其特征...

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

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

1