进程保护方法、装置以及终端与流程

文档序号:11951569阅读:324来源:国知局
进程保护方法、装置以及终端与流程

本发明涉及安全技术领域,尤其涉及一种进程保护方法、装置以及终端。



背景技术:

随着互联网技术的快速发展,病毒、木马等恶意程序技术层出不穷。个别恶意程序会利用特殊代码对终端系统中的安全软件进行攻击,如结束该安全软件所对应的进程,使得该安全软件所对应的进程被结束后就无法正常保护终端,破坏了终端系统的安全保护环境。因此,如何有效地拦截恶意程序恶意结束目标进程的动作以保护目标进程,已经成为亟待解决的问题。



技术实现要素:

本发明的目的旨在至少在一定程度上解决上述的技术问题之一。

为此,本发明的第一个目的在于提出一种进程保护方法。该方法可以利用拦截设置进程属性的函数来达到进程保护的目的,有利于保护目标进程,如终端系统中的安全元件的进程,提高目标进程的防御能力,有利于对用户终端、系统安全的保护。

本发明的第二个目的在于提出一种进程保护装置。

本发明的第三个目的在于提出一种终端。

本发明的第四个目的在于提出另一种终端。

为达上述目的,本发明第一方面实施例的进程保护方法,包括:创建钩子函数,其中,所述钩子函数中包含第一参数和第二参数,所述第一参数用于保存进程的进程句柄,所述第二参数用于保存设置进程属性的数据信息;将所述钩子函数的函数地址替换系统服务描述符表SSDT表中用于设置进程属性的内核函数的原始函数地址;根据所述第一参数和所述第二参数判断当前系统是否满足进程保护条件;如果所述当前系统满足所述进程保护条件,则通过所述钩子函数拦截对目标进程的属性设置。

根据本发明实施例的进程保护方法,可先创建钩子函数,其中,钩子函数中包含第一参数和第二参数,第一参数用于保存进程的进程句柄,第二参数用于保存设置进程属性的数据信息,并将钩子函数的函数地址替换系统服务描述符表SSDT表中用于设置进程属性的内核函数的原始函数地址,之后,根据第一参数和第二参数判断当前系统是否满足进程保护条件,若满足,则通过钩子函数拦截对目标进程的属性设置。即通过挂钩内核函数准确拦截对目标进程的属性设置的恶意行为,以避免由于目标程序内存不可访问而退出的问题,从进程保护层面而言,利用拦截设置进程属性的函数来达到进程保护的目的,有利于保护目标进程,如终端系统中的安全元件的进程,提高目标进程的防御能力,有利于对用户终端、系统安全的保护。

根据本发明的一个实施例,所述根据所述第一参数和所述第二参数判断当前系统是否满足进程保护条件,包括:判断所述第一参数中的进程句柄所对应的进程是否为目标进程;如果所述第一参数中的进程句柄所对应的进程为所述目标进程,则进一步判断所述第二参数中针对所述目标进程所对应的参数值是否为预设阈值;如果所述第二参数中针对所述目标进程所对应的参数值为所述预设阈值,则判定所述当前系统满足所述进程保护条件。

根据本发明的一个实施例,所述方法还包括:如果所述第一参数中的进程句柄所对应的进程不为所述目标进程,或者,所述第二参数中针对所述目标进程所对应的参数值不为所述预设阈值,则判定所述当前系统不满足所述进程保护条件。

根据本发明的一个实施例,所述判断所述第一参数中的进程句柄所对应的进程是否为目标进程,包括:根据所述第一参数中的进程句柄获取对应的进程路径;匹配所述对应的进程路径中是否包含所述目标进程;如果包含,则判定所述进程句柄所对应的进程为所述目标进程。

其中,在本发明的一个实施例中,所述预设阈值用于指示进程的不可访问权限属性。

根据本发明的一个实施例,所述通过所述钩子函数拦截对目标进程的属性设置,包括:通过所述钩子函数生成拒绝访问信息,并根据所述拒绝访问信息退出所述钩子函数的执行。

根据本发明的一个实施例,在将所述钩子函数的函数地址替换SSDT表中用于设置进程属性的内核函数的原始函数地址之前,所述方法还包括:从所述SSDT表中获取所述用于设置进程属性的内核函数的原始函数地址,并保存所述原始函数地址。

根据本发明的一个实施例,在判定所述当前系统不满足所述进程保护条件时,所述方法还包括:根据所述保存的原始函数地址,调用所述SSDT表中的所述用于设置进程属性的内核函数;根据所述用于设置进程属性的内核函数对所述当前系统进行进程属性的设置。

为达上述目的,本发明第二方面实施例的进程保护装置,包括:创建模块,用于创建钩子函数,其中,所述钩子函数中包含第一参数和第二参数,所述第一参数用于保存进程的进程句柄,所述第二参数用于保存设置进程属性的数据信息;函数地址替换模块,用于将所述钩子函数的函数地址替换系统服务描述符表SSDT表中用于设置进程属性的内核函数的原始函数地址;判断模块,用于根据所述第一参数和所述第二参数判断当前系统是否满足进程保护条件;拦截模块,用于在当前系统满足所述进程保护条件时,通过所述钩子函数拦截对目标进程的属性设置。

根据本发明实施例的进程保护装置,可通过创建模块创建钩子函数,其中,钩子函数中包含第一参数和第二参数,第一参数用于保存进程的进程句柄,第二参数用于保存设置进程属性的数据信息,函数地址替换模块将钩子函数的函数地址替换系统服务描述符表SSDT表中用于设置进程属性的内核函数的原始函数地址,判断模块根据第一参数和第二参数判断当前系统是否满足进程保护条件,若满足,拦截模块则通过钩子函数拦截对目标进程的属性设置。即通过挂钩内核函数准确拦截对目标进程的属性设置的恶意行为,以避免由于目标程序内存不可访问而退出的问题,从进程保护层面而言,利用拦截设置进程属性的函数来达到进程保护的目的,有利于保护目标进程,如终端系统中的安全元件的进程,提高目标进程的防御能力,有利于对用户终端、系统安全的保护。

根据本发明的一个实施例,所述判断模块包括:第一判断单元,用于判断所述第一参数中的进程句柄所对应的进程是否为目标进程;第二判断单元,用于在所述第一参数中的进程句柄所对应的进程为所述目标进程时,进一步判断所述第二参数中针对所述目标进程所对应的参数值是否为预设阈值;判定单元,用于在第二参数中针对所述目标进程所对应的参数值为所述预设阈值时,判定所述当前系统满足所述进程保护条件。

根据本发明的一个实施例,所述判定单元还用于在所述第一参数中的进程句柄所对应的进程不为所述目标进程,或者,所述第二参数中针对所述目标进程所对应的参数值不为所述预设阈值时,判定所述当前系统不满足所述进程保护条件。

根据本发明的一个实施例,所述第一判断单元具体用于:根据所述第一参数中的进程句柄获取对应的进程路径;匹配所述对应的进程路径中是否包含所述目标进程;在所述对应的进程路径中包含所述目标进程时,判定所述进程句柄所对应的进程为所述目标进程。

其中,在本发明的一个实施例中,所述预设阈值用于指示进程的不可访问权限属性。

根据本发明的一个实施例,所述拦截模块具体用于:通过所述钩子函数生成拒绝访问信息,并根据所述拒绝访问信息退出所述钩子函数的执行。

根据本发明的一个实施例,所述装置还包括:保存模块,用于在所述函数地址替换模块将所述钩子函数的函数地址替换SSDT表中用于设置进程属性的内核函数的原始函数地址之前,从所述SSDT表中获取所述用于设置进程属性的内核函数的原始函数地址,并保存所述原始函数地址。

根据本发明的一个实施例,所述装置还包括:函数调用模块,用于在判定当前系统不满足所述进程保护条件时,根据所述保存的原始函数地址,调用所述SSDT表中的所述用于设置进程属性的内核函数;进程属性设置模块,用于根据所述用于设置进程属性的内核函数对所述当前系统进行进程属性的设置。

为达上述目的,本发明第三方面实施例的终端,包括:本发明第二方面实施例的进程保护装置。

根据本发明实施例的终端,可通过终端中的创建模块创建钩子函数,其中,钩子函数中包含第一参数和第二参数,第一参数用于保存进程的进程句柄,第二参数用于保存设置进程属性的数据信息,函数地址替换模块将钩子函数的函数地址替换系统服务描述符表SSDT表中用于设置进程属性的内核函数的原始函数地址,判断模块根据第一参数和第二参数判断当前系统是否满足进程保护条件,若满足,拦截模块则通过钩子函数拦截对目标进程的属性设置。即通过挂钩内核函数准确拦截对目标进程的属性设置的恶意行为,以避免由于目标程序内存不可访问而退出的问题,从进程保护层面而言,利用拦截设置进程属性的函数来达到进程保护的目的,有利于保护目标进程,如终端系统中的安全元件的进程,提高目标进程的防御能力,有利于对用户终端、系统安全的保护。

为达上述目的,本发明第四方面实施例的终端,包括:壳体、处理器、存储器、电路板和电源电路,其中,所述电路板安置在所述壳体围成的空间内部,所述处理器和所述存储器设置在所述电路板上;所述电源电路,用于为所述终端的各个电路或器件供电;所述存储器用于存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行以下步骤:创建钩子函数,其中,所述钩子函数中包含第一参数和第二参数,所述第一参数用于保存进程的进程句柄,所述第二参数用于保存设置进程属性的数据信息;将所述钩子函数的函数地址替换系统服务描述符表SSDT表中用于设置进程属性的内核函数的原始函数地址;根据所述第一参数和所述第二参数判断当前系统是否满足进程保护条件;如果所述当前系统满足所述进程保护条件,则通过所述钩子函数拦截对目标进程的属性设置。

根据本发明实施例的终端,可先创建钩子函数,其中,钩子函数中包含第一参数和第二参数,第一参数用于保存进程的进程句柄,第二参数用于保存设置进程属性的数据信息,并将钩子函数的函数地址替换系统服务描述符表SSDT表中用于设置进程属性的内核函数的原始函数地址,之后,根据第一参数和第二参数判断当前系统是否满足进程保护条件,若满足,则通过钩子函数拦截对目标进程的属性设置。即通过挂钩内核函数准确拦截对目标进程的属性设置的恶意行为,以避免由于目标程序内存不可访问而退出的问题,从进程保护层面而言,利用拦截设置进程属性的函数来达到进程保护的目的,有利于保护目标进程,如终端系统中的安全元件的进程,提高目标进程的防御能力,有利于对用户终端、系统安全的保护。

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

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

图1是根据本发明一个实施例的进程保护方法的流程图;

图2是根据本发明一个具体实施例的进程保护方法的流程图;

图3是根据本发明一个实施例的进程保护装置的结构框图;

图4是根据本发明一个实施例的判断模块的结构框图;

图5是根据本发明一个具体实施例的进程保护装置的结构框图;

图6是根据本发明另一个具体实施例的进程保护装置的结构框图。

具体实施方式

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

随着互联网技术的快速发展,病毒、木马等恶意程序技术层出不穷。个别恶意程序会利用特殊代码对终端系统中的安全软件(如毒霸安全软件等)进行攻击,如结束该安全软件所对应的进程,使得该安全软件所对应的核心进程被结束后就无法正常保护终端,破坏了终端系统的安全保护环境。

现有技术中,目标进程保护方法通常是利用挂钩结束进程内核函数(如NtTerminiateProcess函数)来实现对恶意程序的进程的拦截,即通过挂钩结束进程内核函数以拦截恶意程序的进程,达到对目标进程(如终端系统中的安全软件所对应的核心进程)保护的目的。但是,上述进程保护方式是对恶意程序的进程进行预防和处理,可能会出现拦截恶意程序的进程之前,该目标进程(如终端系统中的安全软件所对应的核心进程)已经被恶意程序结束掉了,仍然会破坏终端系统的安全保护环境。

为此,本发明提出了一种进程保护方法、装置以及终端,通过从目标进程侧进行预防和处理,可以从根本上避免由于恶意程序恶意结束目标进程而导致终端系统安全保护环境被破坏。具体地,下面参考附图描述根据本发明实施例的进程保护方法、装置以及终端。

图1是根据本发明一个实施例的进程保护方法的流程图。如图1所示,该进程保护方法可以包括:

S101,创建钩子函数,其中,钩子函数中包含第一参数和第二参数,第一参数用于保存进程的进程句柄,第二参数用于保存设置进程属性的数据信息。

首先,介绍一下恶意程序结束目标进程的具体实现过程可如下:假设本发明实施例的进程保护方法可应用于终端,并以该终端的操作系统为Windows操作系统为例,恶意程序可通过内核函数NtOpenProcess函数打开目标进程,并调用系统服务描述符表SSDT表中用于设置进程属性的内核函数(如NtProtectVirtualMemory函数)将目标进程的核心模块设置为不可访问属性,这样,当目标进程使用到该核心模块内存空间时,由于该核心模块的属性被设置为不可访问,就会导致目标进程的异常退出,这样就达到了目标进程结束的目的。

为此,本发明实施例的进程保护方法利用挂钩上述SSDT表中的用于设置进程属性的内核函数,以实现恶意程序对目标进程的属性设置的拦截,即,可先创建一个钩子函数(如NewNtProtectVirtualMemory函数),该钩子函数中可包含第一参数和第二参数,其中,第一参数可用于保存有进程的进程句柄,可以理解,该进程句柄是进程的操作标识值,因此,通过该操作标识值(即进程句柄)可以操作对应的进程的任意行为;第二参数可用于保存设置进程属性的数据信息,如该第二参数可为AccessProtection参数(用于指示访问权限属性),可以根据实际需要为该第二参数赋予不同的参数值,以实现对进程的访问权限属性的设置。

S102,将钩子函数的函数地址替换系统服务描述符表SSDT表中用于设置进程属性的内核函数的原始函数地址。

具体地,在创建钩子函数的同时,还需将该钩子函数的函数地址替换SSDT表中用于设置进程属性的内核函数的原始函数地址,以实现该用于设置进程属性的内核函数的挂钩,以便在钩子函数中通过该钩子函数的函数地址调用该钩子函数,并通过该钩子函数来达到对目标进程保护的目的。

S103,根据第一参数和第二参数判断当前系统是否满足进程保护条件。

具体地,由于第一参数中的进程句柄是进程的操作标识值,通过该操作标识值可以操作该进程的任意行为,所以,可先根据第一参数中的进程句柄判断当前系统是否有对目标进程进行操作的行为,若有,则进一步根据第二参数判断当前系统是否有针对该目标进程进行权限属性的设置(如设置为不可访问权限属性),若有,则可判定当前系统满足进程保护条件,否则,可判定当前系统不满足进程保护条件。具体的实现方式可参见后续实施例的具体描述。

S104,如果当前系统满足进程保护条件,则通过钩子函数拦截对目标进程的属性设置。

具体而言,在本发明的一个实施例中,在当前系统满足进程保护条件,当前系统中存在有对目标进程进行权限属性的设置行为,如将目标进程的权限属性设置为不可访问权限属性时,可通过钩子函数生成拒绝访问信息,并根据拒绝访问信息退出钩子函数的执行。

更具体地,在当前系统满足进程保护条件时,可在钩子函数中直接返回一个拒绝访问的状态,并退出该钩子函数的执行,以此就不会执行到原始的用于设置进程属性的内核函数,这样就不会执行到系统真正设置进程属性的那一步,从而达到阻止恶意程序对目标进程的权限属性进行设置的目的。

根据本发明实施例的进程保护方法,可先创建钩子函数,其中,钩子函数中包含第一参数和第二参数,第一参数用于保存进程的进程句柄,第二参数用于保存设置进程属性的数据信息,并将钩子函数的函数地址替换系统服务描述符表SSDT表中用于设置进程属性的内核函数的原始函数地址,之后,根据第一参数和第二参数判断当前系统是否满足进程保护条件,若满足,则通过钩子函数拦截对目标进程的属性设置。即通过挂钩内核函数准确拦截对目标进程的属性设置的恶意行为,以避免由于目标程序内存不可访问而退出的问题,从进程保护层面而言,利用拦截设置进程属性的函数来达到进程保护的目的,有利于保护目标进程,如终端系统中的安全元件的进程,提高目标进程的防御能力,有利于对用户终端、系统安全的保护。

图2是根据本发明一个具体实施例的进程保护方法的流程图。如图2所示,该进程保护方法可以包括:

S201,创建钩子函数,其中,钩子函数中包含第一参数和第二参数,第一参数用于保存进程的进程句柄,第二参数用于保存设置进程属性的数据信息。

S202,将钩子函数的函数地址替换系统服务描述符表SSDT表中用于设置进程属性的内核函数的原始函数地址。

为了后续能够达到对目标进程保护的目的,进一步地,在将钩子函数的函数地址替换系统服务描述符表SSDT表中用于设置进程属性的内核函数的原始函数地址之前,该方法还可包括:从SSDT表中获取用于设置进程属性的内核函数的原始函数地址,并保存原始函数地址。也就是说,在创建钩子函数的同时,还可从SSDT表中找到该用于设置进程属性的内核函数(如NtProtectVirtualMemory函数)的原始函数地址,并保存该原始函数地址,以便后续在判定当前系统不满足进程保护条件,即无需进行拦截操作时,根据该保存的原始函数地址以实现对进程的属性设置功能。

S203,判断第一参数中的进程句柄所对应的进程是否为目标进程。

作为一种示例,判断第一参数中的进程句柄所对应的进程是否为目标进程的具体实现过程可包括以下步骤:

2031)根据第一参数中的进程句柄获取对应的进程路径;

2032)匹配对应的进程路径中是否包含目标进程;

2033)如果包含,则判定进程句柄所对应的进程为目标进程。

举例而言,假设本发明实施例的进程保护方法应用于终端,该终端的操作系统为Windows操作系统,可先由第一参数中的进程句柄为参数,调用内核函数ZwQueryInformationProcess函数获取该进程句柄所对应的进程路径,之后,可匹配该进程路径中是否包含目标进程,如该目标进程可为kxescore.exe,kxetray.exe等毒霸安全软件所对应的进程,若包含,则可判定该进程句柄所对应的进程为目标进程,否则,判定该进程句柄所对应的进程不为目标进程。

S204,如果第一参数中的进程句柄所对应的进程为目标进程,则进一步判断第二参数中针对目标进程所对应的参数值是否为预设阈值。

其中,在本发明的一个实施例中,该预设阈值可用于指示进程的不可访问权限属性。

具体地,在判断第一参数中的进程句柄所对应的进程为目标进程时,可确定该第二参数中针对该目标进程所对应的参数值,并进一步判断该参数值是否为预设阈值,若是,则可判定当前系统满足进程保护条件,否则,可判定该当前系统不满足进程保护条件。

举例而言,假设本发明实施例的进程保护方法应用于终端,该终端的操作系统为Windows操作系统,在判断第一参数中的进程句柄所对应的进程为目标进程之后,可获取钩子函数NewNtProtectVirtualMemory中的第二参数(如该第二参数可为AccessProtection)针对目标进程所对应的参数值,如果该参数值AccessProtection=PAGE_NOACCESS(该PAGE_NOACCESS可理解为上述的预设阈值),则说明当前系统有程序在对目标进程进行不可访问权限属性的设置,即设置目标进程的不可访问属性,这样可判定当前系统满足进程保护条件。

S205,如果第二参数中针对目标进程所对应的参数值为预设阈值,则通过钩子函数拦截对目标进程的属性设置。

具体地,当判断当前系统满足进程保护条件,即第一参数中的进程句柄所对应的进程为目标进程,且第二参数中针对目标进程所对应的参数值为预设阈值时,可说明有程序在设置目标进程的进程属性为不可访问状态,此时就可在钩子函数中直接返回一个拒绝访问的状态,并退出该钩子函数的执行,以此就不会执行到原始的用于设置进程属性的内核函数,这样就不会执行到系统真正设置进程属性的那一步,从而达到阻止恶意程序对目标进程的权限属性进行设置的目的。

S206,如果第一参数中的进程句柄所对应的进程不为目标进程,或者,第二参数中针对目标进程所对应的参数值不为预设阈值,则根据保存的原始函数地址,调用SSDT表中的用于设置进程属性的内核函数。

具体地,当第一参数中的进程句柄所对应的进程不为目标进程,或者,第二参数中针对目标进程所对应的参数值不为预设阈值,即判断当前系统不满足进程保护条件时,此时无需对进程的属性设置的行为进行拦截,可根据之前保存的用于设置进程属性的内核函数的原始函数地址,以调用SSDT表中的该用于设置进程属性的内核函数。

S207,根据用于设置进程属性的内核函数对当前系统进行进程属性的设置。

也就是说,在判断当前系统不满足进程保护条件时,可调用SSDT表中的该用于设置进程属性的内核函数以完成真正的设置进程属性功能。

根据本发明实施例的进程保护方法,根据钩子函数的第一参数来判断当前系统是否存在有对目标进程的恶意操作行为,若存在,则根据第二参数来进一步判断当前系统是否存在有针对该目标进程的进程属性进行访问权限的设置,若存在,则可判定当前系统满足进程保护条件,此时可通过钩子函数拦截对目标进程的属性设置,以保护目标进程。即通过两次判断条件来判定当前系统是否存在有设置目标进程的进程属性的恶意行为,提高了判定结果。

与上述几种实施例提供的进程保护方法相对应,本发明的一种实施例还提供一种进程保护装置,由于本发明实施例提供的进程保护装置与上述几种实施例提供的进程保护方法相对应,因此在前述进程保护方法的实施方式也适用于本实施例提供的进程保护装置,在本实施例中不再详细描述。图3是根据本发明一个实施例的进程保护装置的结构框图。如图3所示,该进程保护装置可以包括:创建模块100、函数地址替换模块200、判断模块300和拦截模块400。

具体地,创建模块100可用于创建钩子函数,其中,钩子函数中包含第一参数和第二参数,第一参数用于保存进程的进程句柄,第二参数用于保存设置进程属性的数据信息。

函数地址替换模块200可用于将钩子函数的函数地址替换系统服务描述符表SSDT表中用于设置进程属性的内核函数的原始函数地址。

判断模块300可用于根据第一参数和第二参数判断当前系统是否满足进程保护条件。

拦截模块400可用于在当前系统满足进程保护条件时,通过钩子函数拦截对目标进程的属性设置。具体而言,在本发明的实施例中,该拦截模块400可通过钩子函数生成拒绝访问信息,并根据拒绝访问信息退出钩子函数的执行。

为了提高了判定结果,可通过两次判断条件来判定当前系统是否存在有设置目标进程的进程属性的恶意行为。具体地,作为一种示例,在本发明的一个实施例中,如图4所示,该判断模块300可以包括:第一判断单元310、第二判断单元320和判定单元330。其中,第一判断单元310可用于判断第一参数中的进程句柄所对应的进程是否为目标进程。第二判断单元320可用于在第一参数中的进程句柄所对应的进程为目标进程时,进一步判断第二参数中针对目标进程所对应的参数值是否为预设阈值。判定单元330可用于在第二参数中针对目标进程所对应的参数值为预设阈值时,判定当前系统满足进程保护条件。其中,在本发明的一个实施例中,该预设阈值可用于指示进程的不可访问权限属性。

作为一种可选地实施例,该判定单元330还可用于在第一参数中的进程句柄所对应的进程不为目标进程,或者,第二参数中针对目标进程所对应的参数值不为预设阈值时,判定当前系统不满足进程保护条件。

作为一种示例,上述第一判断单元310判断第一参数中的进程句柄所对应的进程是否为目标进程的具体实现过程可如下:根据第一参数中的进程句柄获取对应的进程路径;匹配对应的进程路径中是否包含目标进程;在对应的进程路径中包含目标进程时,判定进程句柄所对应的进程为目标进程。

为了能够达到对目标进程保护的目的,进一步地,在本发明的一个实施例中,如图5所示,该装置还可包括:保存模块500。其中,保存模块500可用于在函数地址替换模块200将钩子函数的函数地址替换SSDT表中用于设置进程属性的内核函数的原始函数地址之前,从SSDT表中获取用于设置进程属性的内核函数的原始函数地址,并保存原始函数地址。

进一步地,在本发明的一个实施例中,如图6所示,在如图5所示的基础上,该装置还可包括:函数调用模块600和进程属性设置模块700。其中,函数调用模块600可用于在判定当前系统不满足进程保护条件时,根据保存的原始函数地址,调用SSDT表中的用于设置进程属性的内核函数。进程属性设置模块700可用于根据用于设置进程属性的内核函数对当前系统进行进程属性的设置。由此,判断当前系统不满足进程保护条件时,通过调用SSDT表中的该用于设置进程属性的内核函数以完成真正的设置进程属性功能。

根据本发明实施例的进程保护装置,可先通过创建模块创建钩子函数,其中,钩子函数中包含第一参数和第二参数,第一参数用于保存进程的进程句柄,第二参数用于保存设置进程属性的数据信息,函数地址替换模块将钩子函数的函数地址替换系统服务描述符表SSDT表中用于设置进程属性的内核函数的原始函数地址,判断模块根据第一参数和第二参数判断当前系统是否满足进程保护条件,若满足,拦截模块则通过钩子函数拦截对目标进程的属性设置。即通过挂钩内核函数准确拦截对目标进程的属性设置的恶意行为,以避免由于目标程序内存不可访问而退出的问题,从进程保护层面而言,利用拦截设置进程属性的函数来达到进程保护的目的,有利于保护目标进程,如终端系统中的安全元件的进程,提高目标进程的防御能力,有利于对用户终端、系统安全的保护。

为了实现上述实施例,本发明还提出了一种终端,该终端包括了本发明上述任一个实施例所述的进程保护装置。

根据本发明实施例的终端,可通过终端中的创建模块创建钩子函数,其中,钩子函数中包含第一参数和第二参数,第一参数用于保存进程的进程句柄,第二参数用于保存设置进程属性的数据信息,函数地址替换模块将钩子函数的函数地址替换系统服务描述符表SSDT表中用于设置进程属性的内核函数的原始函数地址,判断模块根据第一参数和第二参数判断当前系统是否满足进程保护条件,若满足,拦截模块则通过钩子函数拦截对目标进程的属性设置。即通过挂钩内核函数准确拦截对目标进程的属性设置的恶意行为,以避免由于目标程序内存不可访问而退出的问题,从进程保护层面而言,利用拦截设置进程属性的函数来达到进程保护的目的,有利于保护目标进程,如终端系统中的安全元件的进程,提高目标进程的防御能力,有利于对用户终端、系统安全的保护。

为了实现上述实施例,本发明还提出了一种终端,包括:壳体、处理器、存储器、电路板和电源电路,其中,所述电路板安置在所述壳体围成的空间内部,所述处理器和所述存储器设置在所述电路板上;所述电源电路,用于为所述终端的各个电路或器件供电;所述存储器用于存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行以下步骤:

S101’,创建钩子函数,其中,钩子函数中包含第一参数和第二参数,第一参数用于保存进程的进程句柄,第二参数用于保存设置进程属性的数据信息。

S102’,将钩子函数的函数地址替换系统服务描述符表SSDT表中用于设置进程属性的内核函数的原始函数地址。

S103’,根据第一参数和第二参数判断当前系统是否满足进程保护条件。

S104’,如果当前系统满足进程保护条件,则通过钩子函数拦截对目标进程的属性设置。

根据本发明实施例的终端,可先创建钩子函数,其中,钩子函数中包含第一参数和第二参数,第一参数用于保存进程的进程句柄,第二参数用于保存设置进程属性的数据信息,并将钩子函数的函数地址替换系统服务描述符表SSDT表中用于设置进程属性的内核函数的原始函数地址,之后,根据第一参数和第二参数判断当前系统是否满足进程保护条件,若满足,则通过钩子函数拦截对目标进程的属性设置。即通过挂钩内核函数准确拦截对目标进程的属性设置的恶意行为,以避免由于目标程序内存不可访问而退出的问题,从进程保护层面而言,利用拦截设置进程属性的函数来达到进程保护的目的,有利于保护目标进程,如终端系统中的安全元件的进程,提高目标进程的防御能力,有利于对用户终端、系统安全的保护。

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

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

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

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

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

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

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

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

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