CN106203090A - 线程的保护方法、装置及电子设备 - Google Patents
线程的保护方法、装置及电子设备 Download PDFInfo
- Publication number
- CN106203090A CN106203090A CN201610507703.2A CN201610507703A CN106203090A CN 106203090 A CN106203090 A CN 106203090A CN 201610507703 A CN201610507703 A CN 201610507703A CN 106203090 A CN106203090 A CN 106203090A
- Authority
- CN
- China
- Prior art keywords
- thread
- function
- subject thread
- hook
- handle
- 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
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/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)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种线程的保护方法、装置及电子设备,其中,线程的保护方法包括:监控目标线程是否接收到暂停指令;当确定目标线程接收到暂停指令时,利用钩子函数挂钩与目标线程对应的预设函数;判断目标线程对应的进程路径是否在预设目录下;如果目标线程对应的进程路径在预设目录下,则执行对目标线程的保护操作。本发明实施例的线程的保护方法、装置及电子设备,通过钩子函数挂钩恶意程序暂停目标线程时需要调用的预设函数,在监控到有恶意程序暂停目标线程时,对目标线程进行保护,防止恶意程序暂停杀毒软件的所有线程,从而保证系统信息安全。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种线程的保护方法、装置及电子设备。
背景技术
随着互联网技术发展,病毒,木马等恶意程序技术层出不穷。有的恶意软件为了自身存活,利用各种恶意手段对杀毒软件进行攻击,例如结束或暂停杀毒软件的进程,删除杀毒软件安装目录下的文件等。其中,有一种方法是暂停杀毒软件进程中的所有线程,暂停所有线程会导致进程处于不工作状态,相当于结束了杀毒软件的进程。相关技术中,可通过挂钩一个内核函数,或者挂钩发送通信函数来实现保护对应的进程。但是,上述方法无法保护恶意程序结束杀毒软件的线程。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的第一个目的在于提出一种线程的保护方法,该方法能够防止恶意程序暂停杀毒软件的所有线程,从而保证系统信息安全。
本发明的第二个目的在于提出一种线程的保护装置。
本发明的第三个目的在于提出一种电子设备。
为实现上述目的,本发明第一方面实施例提出了一种线程的保护方法,包括以下步骤:监控目标线程是否接收到暂停指令;当确定所述目标线程接收到所述暂停指令时,利用钩子函数挂钩与所述目标线程对应的预设函数;判断所述目标线程对应的进程路径是否在预设目录下;如果所述目标线程对应的进程路径在所述预设目录下,则执行对所述目标线程的保护操作。
可选的,利用钩子函数挂钩与所述目标线程对应的预设函数,包括:从系统服务描述符表SSDT中查找所述预设函数的地址;建立所述钩子函数,并将所述钩子函数的地址设置为所述预设函数的地址,以挂钩所述预设函数。
可选的,判断所述目标线程对应的进程路径是否在预设目录下,包括:获取所述目标线程的线程句柄;根据所述线程句柄获取所述目标进程的进程句柄;根据所述进程句柄获取所述进程路径;判断所述进程路径是否在预设目录下。
可选的,根据所述线程句柄获取所述目标进程的进程句柄,包括:根据所述线程句柄获取所述目标线程的线程体结构地址;根据所述线程体结构地址获取所述目标线程所在的进程体结构;根据所述进程体结构获取所述进程句柄。
可选的,执行对所述目标线程的保护操作,包括:利用所述钩子函数向所述暂停指令的发起主体返回拒绝状态;或者利用所述钩子函数向所述暂停指令的发起主体返回暂停成功的假状态;或者利用所述钩子函数执行所述预设函数,暂停所述目标线程,并在向所述暂停指令的发起主体返回暂停成功状态之后,恢复所述目标线程。
为实现上述目的,本发明第二方面实施例提出了一种线程的保护装置,包括:监控模块,用于监控目标线程是否接收到暂停指令;挂钩模块,用于当确定所述目标线程接收到所述暂停指令时,利用钩子函数挂钩与所述目标线程对应的预设函数;判断模块,用于判断所述目标线程对应的进程路径是否在预设目录下;执行模块,用于如果所述目标线程对应的进程路径在所述预设目录下,则执行对所述目标线程的保护操作。
可选的,所述挂钩模块,包括:查找子模块,用于从系统服务描述符表SSDT中查找所述预设函数的地址;建立子模块,用于建立所述钩子函数,并将所述钩子函数的地址设置为所述预设函数的地址,以挂钩所述预设函数。
可选的,所述判断模块,包括:第一获取子模块,用于获取所述目标线程的线程句柄;第二获取子模块,用于获取根据所述线程句柄获取所述目标进程的进程句柄;第三获取子模块,用于获取根据所述进程句柄获取所述进程路径;判断子模块,用于判断所述进程路径是否在预设目录下。
可选的,所述第二获取子模块,用于:根据所述线程句柄获取所述目标线程的线程体结构地址;根据所述线程体结构地址获取所述目标线程所在的进程体结构;根据所述进程体结构获取所述进程句柄。
可选的,所述执行模块,用于:利用所述钩子函数向所述暂停指令的发起主体返回拒绝状态;或者利用所述钩子函数向所述暂停指令的发起主体返回暂停成功的假状态;或者利用所述钩子函数执行所述预设函数,暂停所述目标线程,并在向所述暂停指令的发起主体返回暂停成功状态之后,恢复所述目标线程。
为实现上述目的,本发明第三方面实施例提出了一种电子设备,该电子设备包括处理器、存储器、通信接口和总线;所述处理器、所述存储器和所述通信接口通过所述总线连接并完成相互间的通信;所述存储器存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行以下步骤:
监控目标线程是否接收到暂停指令;
当确定所述目标线程接收到所述暂停指令时,利用钩子函数挂钩与所述目标线程对应的预设函数;
判断所述目标线程对应的进程路径是否在预设目录下;
如果所述目标线程对应的进程路径在所述预设目录下,则执行对所述目标线程的保护操作。
为实现上述目的,本发明第四方面实施例提出了一种存储介质,其中,所述存储介质用于存储应用程序,所述应用程序用于在运行时执行本发明所述的一种线程的保护方法。
为实现上述目的,本发明第五方面实施例提出了一种应用程序,其中,所述应用程序用于在运行时执行本发明所述的一种线程的保护方法。
在本发明中,通过钩子函数挂钩恶意程序暂停目标线程时需要调用的预设函数,在监控到有恶意程序暂停目标线程时,对目标线程进行保护,防止恶意程序暂停杀毒软件的所有线程,从而保证系统信息安全。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1是根据本发明一个实施例的线程的保护方法的流程图;
图2是根据本发明一个实施例的线程的保护装置的结构示意图;
图3是根据本发明一个实施例的电子设备的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的线程的保护方法、装置及电子设备。
图1是根据本发明一个实施例的线程的保护方法的流程图,如图1所示,该方法包括:
S101、监控目标线程是否接收到暂停指令。
首先,先介绍下恶意程序暂停目标线程的过程。恶意程序可先在应用层调用SuspendThread函数,然后调用ZwSuspendThread函数,进而在内核层调用NtSuspendThread函数,最终通过系统暂停目标线程。在本实施例中,目标线程主要是杀毒软件的线程。系统为即操作系统,如WINDOWS。
因此,若要防止恶意程序暂停目标线程,需要对目标线程进行监控,监控其是否接收到来自恶意程序的暂停指令。
S102、当确定目标线程接收到暂停指令时,利用钩子函数挂钩与目标线程对应的预设函数。
具体地,可从SSDT(System Services Descriptor Table,系统服务描述符表)中查找预设函数的地址。然后建立钩子函数,并将钩子函数的地址设置为预设函数的地址,以挂钩预设函数。举例来说,可从SSDT中查找到函数NtSuspendThread的地址,并保存该地址。然后,建立一个钩子函数NewNtSuspendThread,将钩子函数的地址替换为函数NtSuspendThread的地址,从而实现对函数NtSuspendThread的挂钩。
S103、判断目标线程对应的进程路径是否在预设目录下。
在利用钩子函数挂钩与目标线程对应的预设函数之后,可判断目标线程对应的进程路径是否在预设目录下。
具体地,可获取目标线程的线程句柄,并根据线程句柄获取目标进程的进程句柄。然后根据进程句柄获取进程路径,最后判断进程路径是否在预设目录下。
在本实施例中,预设目录为杀毒软件的安装目录。如果进程路径在预设目录下,则说明恶意程序暂停的是杀毒软件的线程;如果进程路径不在预设目录下,则说明暂停的并非杀毒软件的线程。
其中,根据线程句柄获取目标进程的进程句柄,还可进一步包括以下步骤:
首先,根据线程句柄获取目标线程的线程体结构地址,再根据线程体结构地址获取目标线程所在的进程体结构,然后根据进程体结构获取进程句柄。
举例来说,线程句柄是线程的标识,根据该标识钩子函数对目标线程进行操作。具体地,可将线程句柄作为参数,调用内核函数ObReferenceObjectByHandle,从而获取线程体结构地址。其中,线程体结构是保存线程所有数据的一个结构。将线程体结构地址作为参数,调用函数IoThreadToProcess以获取目标线程所在的进程体结构。然后,由进程体结构调用ObOpenObjectByPointer获取进程句柄。再根据进程句柄调用函数ZwQueryInformationProcess,从而查询到目标线程所在的进程路径。然后可判断该进程路径是否在杀毒软件的安装目录下。
S104、如果目标线程对应的进程路径在预设目录下,则执行对目标线程的保护操作。
在本实施例中,杀毒软件可执行对目标进程的保护操作,即拦截恶意程序的暂停操作。具体地,可包括以下几个方式:
第一个方式:利用钩子函数向暂停指令的发起主体返回拒绝状态。例如:利用钩子函数NewNtSuspendThread向恶意程序返回一个拒绝访问的状态。如此做,可拒绝执行原有的函数NtSuspendThread,从而使得系统无需接收到暂停线程的指令,达到拦截的目的。
第二个方式:利用钩子函数向暂停指令的发起主体返回暂停成功的假状态。例如:利用钩子函数NewNtSuspendThread向恶意程序返回一个暂停成功的假状态,使得恶意程序接收到的返回值是暂停成功的假状态,但实质上并未执行原有的函数NtSuspendThread对目标线程进行暂停。
第三个方式:利用钩子函数执行预设函数,暂停目标线程,并在向暂停指令的发起主体返回暂停成功状态之后,恢复目标线程。例如:利用钩子函数NewNtSuspendThread执行原有的函数NtSuspendThread对目标线程进行暂停。暂停成功后,再调用一个函数NtResumeThread把已暂停的目标线程恢复运行。这样,可使恶意程序认为目标线程已经暂停成功,从而达到拦截的效果。
当然,如果目标线程对应的进程路径不在预设目录下,则可直接执行对目标线程的暂停操作。
本发明实施例的线程的保护方法,通过钩子函数挂钩恶意程序暂停目标线程时需要调用的预设函数,在监控到有恶意程序暂停目标线程时,对目标线程进行保护,防止恶意程序暂停杀毒软件的所有线程,从而保证系统信息安全。
为了实现上述实施例,本发明还提出一种线程的保护装置。
图2是根据本发明一个实施例的线程的保护装置的结构示意图。
如图2所示,该装置包括:监控模块110、挂钩模块120、判断模块130和执行模块140。
监控模块110用于监控目标线程是否接收到暂停指令。
首先,先介绍下恶意程序暂停目标线程的过程。恶意程序可先在应用层调用SuspendThread函数,然后调用ZwSuspendThread函数,进而在内核层调用NtSuspendThread函数,最终通过系统暂停目标线程。在本实施例中,目标线程主要是杀毒软件的线程。系统为即操作系统,如WINDOWS。
因此,若要防止恶意程序暂停目标线程,需要对目标线程进行监控,监控其是否接收到来自恶意程序的暂停指令。
挂钩模块120用于当确定目标线程接收到暂停指令时,利用钩子函数挂钩与目标线程对应的预设函数。
其中,挂钩模块120可包括查找子模块121和建立子模块122。
具体地,查找子模块121可从SSDT(System Services Descriptor Table,系统服务描述符表)中查找预设函数的地址。然后建立子模块122建立钩子函数,并将钩子函数的地址设置为预设函数的地址,以挂钩预设函数。举例来说,可从SSDT中查找到函数NtSuspendThread的地址,并保存该地址。然后,建立一个钩子函数NewNtSuspendThread,将钩子函数的地址替换为函数NtSuspendThread的地址,从而实现对函数NtSuspendThread的挂钩。
判断模块130用于判断目标线程对应的进程路径是否在预设目录下。
判断模块130可包括第一获取子模块131、第二获取子模块132、第三获取子模块133和判断子模块134。
具体地,第一获取子模块131可获取目标线程的线程句柄,第二获取子模块132根据线程句柄获取目标进程的进程句柄。然后第三获取子模块133根据进程句柄获取进程路径,最后判断子模块134判断进程路径是否在预设目录下。
更具体地,第二获取子模块132可根据线程句柄获取目标线程的线程体结构地址,再根据线程体结构地址获取目标线程所在的进程体结构,然后根据进程体结构获取进程句柄。
在本实施例中,预设目录为杀毒软件的安装目录。如果进程路径在预设目录下,则说明恶意程序暂停的是杀毒软件的线程;如果进程路径不在预设目录下,则说明暂停的并非杀毒软件的线程。
举例来说,线程句柄是线程的标识,根据该标识钩子函数对目标线程进行操作。具体地,可将线程句柄作为参数,调用内核函数ObReferenceObjectByHandle,从而获取线程体结构地址。其中,线程体结构是保存线程所有数据的一个结构。将线程体结构地址作为参数,调用函数IoThreadToProcess以获取目标线程所在的进程体结构。然后,由进程体结构调用ObOpenObjectByPointer获取进程句柄。再根据进程句柄调用函数ZwQueryInformationProcess,从而查询到目标线程所在的进程路径。然后可判断该进程路径是否在杀毒软件的安装目录下。
执行模块140用于如果目标线程对应的进程路径在预设目录下,则执行对目标线程的保护操作。在本实施例中,执行模块140可执行对目标进程的保护操作,即拦截恶意程序的暂停操作。具体地,可包括以下几个方式:
第一个方式:利用钩子函数向暂停指令的发起主体返回拒绝状态。例如:利用钩子函数NewNtSuspendThread向恶意程序返回一个拒绝访问的状态。如此做,可拒绝执行原有的函数NtSuspendThread,从而使得系统无需接收到暂停线程的指令,达到拦截的目的。
第二个方式:利用钩子函数向暂停指令的发起主体返回暂停成功的假状态。例如:利用钩子函数NewNtSuspendThread向恶意程序返回一个暂停成功的假状态,使得恶意程序接收到的返回值是暂停成功的假状态,但实质上并未执行原有的函数NtSuspendThread对目标线程进行暂停。
第三个方式:利用钩子函数执行预设函数,暂停目标线程,并在向暂停指令的发起主体返回暂停成功状态之后,恢复目标线程。例如:利用钩子函数NewNtSuspendThread执行原有的函数NtSuspendThread对目标线程进行暂停。暂停成功后,再调用一个函数NtResumeThread把已暂停的目标线程恢复运行。这样,可使恶意程序认为目标线程已经暂停成功,从而达到拦截的效果。
当然,如果目标线程对应的进程路径不在预设目录下,则可直接执行对目标线程的暂停操作。
本发明实施例的线程的保护装置,通过钩子函数挂钩恶意程序暂停目标线程时需要调用的预设函数,在监控到有恶意程序暂停目标线程时,对目标线程进行保护,防止恶意程序暂停杀毒软件的所有线程,从而保证系统信息安全。
为了实现上述实施例,本发明还提出一种电子设备。
图3是根据本发明一个实施例的电子设备的结构示意图。
如图3所示,该电子设备包括处理器31、存储器32、通信接口33和总线34,其中:处理器31、存储器32和通信接口33通过总线34连接并完成相互间的通信;存储器32存储可执行程序代码;处理器31通过读取存储器32中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行以下步骤:
S101’、监控目标线程是否接收到暂停指令。
首先,先介绍下恶意程序暂停目标线程的过程。恶意程序可先在应用层调用SuspendThread函数,然后调用ZwSuspendThread函数,进而在内核层调用NtSuspendThread函数,最终通过系统暂停目标线程。在本实施例中,目标线程主要是杀毒软件的线程。系统为即操作系统,如WINDOWS。
因此,若要防止恶意程序暂停目标线程,需要对目标线程进行监控,监控其是否接收到来自恶意程序的暂停指令。
S102’、当确定目标线程接收到暂停指令时,利用钩子函数挂钩与目标线程对应的预设函数。
具体地,可从SSDT(System Services Descriptor Table,系统服务描述符表)中查找预设函数的地址。然后建立钩子函数,并将钩子函数的地址设置为预设函数的地址,以挂钩预设函数。举例来说,可从SSDT中查找到函数NtSuspendThread的地址,并保存该地址。然后,建立一个钩子函数NewNtSuspendThread,将钩子函数的地址替换为函数NtSuspendThread的地址,从而实现对函数NtSuspendThread的挂钩。
S103’、判断目标线程对应的进程路径是否在预设目录下。
在利用钩子函数挂钩与目标线程对应的预设函数之后,可判断目标线程对应的进程路径是否在预设目录下。
具体地,可获取目标线程的线程句柄,并根据线程句柄获取目标进程的进程句柄。然后根据进程句柄获取进程路径,最后判断进程路径是否在预设目录下。
在本实施例中,预设目录为杀毒软件的安装目录。如果进程路径在预设目录下,则说明恶意程序暂停的是杀毒软件的线程;如果进程路径不在预设目录下,则说明暂停的并非杀毒软件的线程。
其中,根据线程句柄获取目标进程的进程句柄,还可进一步包括以下步骤:
首先,根据线程句柄获取目标线程的线程体结构地址,再根据线程体结构地址获取目标线程所在的进程体结构,然后根据进程体结构获取进程句柄。
举例来说,线程句柄是线程的标识,根据该标识钩子函数对目标线程进行操作。具体地,可将线程句柄作为参数,调用内核函数ObReferenceObjectByHandle,从而获取线程体结构地址。其中,线程体结构是保存线程所有数据的一个结构。将线程体结构地址作为参数,调用函数IoThreadToProcess以获取目标线程所在的进程体结构。然后,由进程体结构调用ObOpenObjectByPointer获取进程句柄。再根据进程句柄调用函数ZwQueryInformationProcess,从而查询到目标线程所在的进程路径。然后可判断该进程路径是否在杀毒软件的安装目录下。
S104’、如果目标线程对应的进程路径在预设目录下,则执行对目标线程的保护操作。
在本实施例中,杀毒软件可执行对目标进程的保护操作,即拦截恶意程序的暂停操作。具体地,可包括以下几个方式:
第一个方式:利用钩子函数向暂停指令的发起主体返回拒绝状态。例如:利用钩子函数NewNtSuspendThread向恶意程序返回一个拒绝访问的状态。如此做,可拒绝执行原有的函数NtSuspendThread,从而使得系统无需接收到暂停线程的指令,达到拦截的目的。
第二个方式:利用钩子函数向暂停指令的发起主体返回暂停成功的假状态。例如:利用钩子函数NewNtSuspendThread向恶意程序返回一个暂停成功的假状态,使得恶意程序接收到的返回值是暂停成功的假状态,但实质上并未执行原有的函数NtSuspendThread对目标线程进行暂停。
第三个方式:利用钩子函数执行预设函数,暂停目标线程,并在向暂停指令的发起主体返回暂停成功状态之后,恢复目标线程。例如:利用钩子函数NewNtSuspendThread执行原有的函数NtSuspendThread对目标线程进行暂停。暂停成功后,再调用一个函数NtResumeThread把已暂停的目标线程恢复运行。这样,可使恶意程序认为目标线程已经暂停成功,从而达到拦截的效果。
当然,如果目标线程对应的进程路径不在预设目录下,则可直接执行对目标线程的暂停操作。
本发明实施例的电子设备,通过钩子函数挂钩恶意程序暂停目标线程时需要调用的预设函数,在监控到有恶意程序暂停目标线程时,对目标线程进行保护,防止恶意程序暂停杀毒软件的所有线程,从而保证系统信息安全。
可以理解的是,该电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
为实现上述目的,本发明还提出一种存储介质,其中,存储介质用于存储应用程序,应用程序用于在运行时执行本发明的一种线程的保护方法。
为实现上述目的,本发明还提出一种应用程序,其中,应用程序用于在运行时执行本发明的一种线程的保护方法。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种线程的保护方法,其特征在于,包括以下步骤:
监控目标线程是否接收到暂停指令;
当确定所述目标线程接收到所述暂停指令时,利用钩子函数挂钩与所述目标线程对应的预设函数;
判断所述目标线程对应的进程路径是否在预设目录下;
如果所述目标线程对应的进程路径在所述预设目录下,则执行对所述目标线程的保护操作。
2.如权利要求1所述的方法,其特征在于,利用钩子函数挂钩与所述目标线程对应的预设函数,包括:
从系统服务描述符表SSDT中查找所述预设函数的地址;
建立所述钩子函数,并将所述钩子函数的地址设置为所述预设函数的地址,以挂钩所述预设函数。
3.如权利要求1所述的方法,其特征在于,判断所述目标线程对应的进程路径是否在预设目录下,包括:
获取所述目标线程的线程句柄;
根据所述线程句柄获取所述目标进程的进程句柄;
根据所述进程句柄获取所述进程路径;
判断所述进程路径是否在预设目录下。
4.如权利要求3所述的方法,其特征在于,根据所述线程句柄获取所述目标进程的进程句柄,包括:
根据所述线程句柄获取所述目标线程的线程体结构地址;
根据所述线程体结构地址获取所述目标线程所在的进程体结构;
根据所述进程体结构获取所述进程句柄。
5.如权利要求1所述的方法,其特征在于,执行对所述目标线程的保护操作,包括:
利用所述钩子函数向所述暂停指令的发起主体返回拒绝状态;或者
利用所述钩子函数向所述暂停指令的发起主体返回暂停成功的假状态;或者
利用所述钩子函数执行所述预设函数,暂停所述目标线程,并在向所述暂停指令的发起主体返回暂停成功状态之后,恢复所述目标线程。
6.一种线程的保护装置,其特征在于,包括:
监控模块,用于监控目标线程是否接收到暂停指令;
挂钩模块,用于当确定所述目标线程接收到所述暂停指令时,利用钩子函数挂钩与所述目标线程对应的预设函数;
判断模块,用于判断所述目标线程对应的进程路径是否在预设目录下;
执行模块,用于如果所述目标线程对应的进程路径在所述预设目录下,则执行对所述目标线程的保护操作。
7.如权利要求6所述的装置,其特征在于,所述挂钩模块,包括:
查找子模块,用于从系统服务描述符表SSDT中查找所述预设函数的地址;
建立子模块,用于建立所述钩子函数,并将所述钩子函数的地址设置为所述预设函数的地址,以挂钩所述预设函数。
8.如权利要求6所述的装置,其特征在于,所述判断模块,包括:
第一获取子模块,用于获取所述目标线程的线程句柄;
第二获取子模块,用于获取根据所述线程句柄获取所述目标进程的进程句柄;
第三获取子模块,用于获取根据所述进程句柄获取所述进程路径;
判断子模块,用于判断所述进程路径是否在预设目录下。
9.如权利要求8所述的装置,其特征在于,所述第二获取子模块,用于:
根据所述线程句柄获取所述目标线程的线程体结构地址;
根据所述线程体结构地址获取所述目标线程所在的进程体结构;
根据所述进程体结构获取所述进程句柄。
10.如权利要求6所述的装置,其特征在于,所述执行模块,用于:
利用所述钩子函数向所述暂停指令的发起主体返回拒绝状态;或者
利用所述钩子函数向所述暂停指令的发起主体返回暂停成功的假状态;或者
利用所述钩子函数执行所述预设函数,暂停所述目标线程,并在向所述暂停指令的发起主体返回暂停成功状态之后,恢复所述目标线程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610507703.2A CN106203090B (zh) | 2016-06-29 | 2016-06-29 | 线程的保护方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610507703.2A CN106203090B (zh) | 2016-06-29 | 2016-06-29 | 线程的保护方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106203090A true CN106203090A (zh) | 2016-12-07 |
CN106203090B CN106203090B (zh) | 2019-07-26 |
Family
ID=57464385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610507703.2A Active CN106203090B (zh) | 2016-06-29 | 2016-06-29 | 线程的保护方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106203090B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110659141A (zh) * | 2018-06-30 | 2020-01-07 | 武汉斗鱼网络科技有限公司 | 一种指令执行的方法以及相关设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101414341A (zh) * | 2007-10-15 | 2009-04-22 | 北京瑞星国际软件有限公司 | 一种软件自我保护的方法 |
CN101872391A (zh) * | 2009-04-23 | 2010-10-27 | 盛大计算机(上海)有限公司 | 基于三环体系的安全防护系统 |
CN105373383A (zh) * | 2015-11-13 | 2016-03-02 | 珠海市君天电子科技有限公司 | 一种应用程序窗口的显示与隐藏控制方法及装置 |
-
2016
- 2016-06-29 CN CN201610507703.2A patent/CN106203090B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101414341A (zh) * | 2007-10-15 | 2009-04-22 | 北京瑞星国际软件有限公司 | 一种软件自我保护的方法 |
CN101872391A (zh) * | 2009-04-23 | 2010-10-27 | 盛大计算机(上海)有限公司 | 基于三环体系的安全防护系统 |
CN105373383A (zh) * | 2015-11-13 | 2016-03-02 | 珠海市君天电子科技有限公司 | 一种应用程序窗口的显示与隐藏控制方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110659141A (zh) * | 2018-06-30 | 2020-01-07 | 武汉斗鱼网络科技有限公司 | 一种指令执行的方法以及相关设备 |
CN110659141B (zh) * | 2018-06-30 | 2022-01-04 | 武汉斗鱼网络科技有限公司 | 一种指令执行的方法以及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN106203090B (zh) | 2019-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104361076B (zh) | 浏览器的异常处理方法和装置 | |
EP2562673B1 (en) | Apparatus and method for securing mobile terminal | |
CN106709325B (zh) | 一种监控程序的方法及装置 | |
WO2017107830A1 (zh) | 一种安装应用软件的方法、装置及电子设备 | |
US9747449B2 (en) | Method and device for preventing application in an operating system from being uninstalled | |
CN105893847B (zh) | 一种保护安全防护应用程序文件的方法、装置及电子设备 | |
US20120304298A1 (en) | Method for antivirus in a mobile device by using a mobile storage and a system thereof | |
CN105844146A (zh) | 一种保护驱动程序的方法、装置及电子设备 | |
CN106127031A (zh) | 一种保护进程的方法、装置及电子设备 | |
CN106203092A (zh) | 一种拦截恶意程序关机的方法、装置及电子设备 | |
CN106209918A (zh) | 一种网络安全性管理的方法及终端 | |
CN103678125A (zh) | 一种代码调试方法及调试系统 | |
CN106997313B (zh) | 一种应用程序的信号处理方法、系统及终端设备 | |
CN106934272B (zh) | 一种应用信息的校验方法和装置 | |
CN106682493B (zh) | 一种防止进程被恶意结束的方法、装置及电子设备 | |
CN106778132B (zh) | 文件处理的控制方法、装置及移动终端 | |
CN114741695A (zh) | 一种恶意代码监控方法、装置、电子设备及存储介质 | |
CN106682504B (zh) | 一种防止文件被恶意编辑的方法、装置及电子设备 | |
CN106302519A (zh) | 一种网络安全性管理的方法及终端 | |
CN114282212A (zh) | 流氓软件识别方法、装置、电子设备及存储介质 | |
CN106203090A (zh) | 线程的保护方法、装置及电子设备 | |
CN106169048A (zh) | 文件删除方法、装置及电子设备 | |
CN114117414A (zh) | 移动应用的安全防护系统、方法、设备及存储介质 | |
CN105844148A (zh) | 一种保护操作系统的方法、装置及电子设备 | |
CN106127029A (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 |
Effective date of registration: 20181211 Address after: 519030 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. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |