一种确定子进程的父进程的方法、设备及其存储介质与流程

文档序号:14774089发布日期:2018-06-23 02:32阅读:197来源:国知局
一种确定子进程的父进程的方法、设备及其存储介质与流程

本发明涉及系统安全技术领域,尤其涉及一种确定子进程的父进程的方法、设备及其计算机存储介质。



背景技术:

一个完整的程序会由多层级的进程链构成。其中,所述多层级的进程链通常包括子进程、父进程、父父进程、父父父进程以及更上一级的进程等等。在程序运行过程中子进程的父进程被关闭(或由于其他原因)之后,父进程将处于退出状态。这样,当父进程退出后,终端只能获取到子进程的进程信息,而无法获取到该子进程的父进程的进程信息,导致无法最后根据获取到的进程链上的全部进程的进程信息鉴定程序的运行行为。

在中国专利申请公开CN105608375A中公开了一种进程信息获取方法,所述进程信息获取方法通过创建进程数据表的方式监控并记录了进程创建过程,比如使用驱动设置PsSetCreateProcessNotifyRoutine回调,获取到创建子进程操作,并在此时记录下该子进程的进程信息,以供后续查询。因此,当某一进程退出的情况下,可以从预先创建的进程数据表中获取到进程链上的全部进程的进程信息。

然而,上述进程信息获取方法存在如下缺陷:1)终端在处理器进行程序运行的过程中增加实时监控进程创建过程,故使得处理器的处理速率下降;2)终端需要在实时监控进程创建过程的基础上,以创建进程数据表的方式不断记录整个进程创建过程,必然会占用较大的存储空间,从而引起存储空间不足等问题。



技术实现要素:

鉴于上述问题,提出了本发明,以便提供一种克服上述问题或者至少部分地解决上述问题的一种确定子进程的父进程的方法、设备及计算机存储介质。

依据本发明的第一方面,提供一种确定子进程的父进程的方法,包括:获取子进程所对应的内存地址信息;根据所述内存地址信息,查找信息列表,所述信息列表包括多条内存详细信息;基于特定筛选条件遍历所述信息列表,筛选出与所述子进程对应的父进程的进程路径信息。

可选的,在根据本发明的实施例的确定子进程的父进程的方法中,基于特定筛选条件遍历所述信息列表,筛选出与所述子进程对应的父进程的进程路径信息,包括:基于特定筛选条件遍历所述信息列表,筛选出目标详细信息;根据特定偏移地址获取所述目标详细信息的内存内容,并将所述内存内容确定为与所述子进程对应的父进程的进程路径信息;其中,所述特定偏移地址的取值为目标详细信息的起始地址与特定偏移量二者之和,所述特定偏移量用于指示所述进程路径信息在所述目标详细信息中所处的位置。

可选的,在根据本发明的实施例的确定子进程的父进程的方法中,所述特定偏移量的取值因操作系统版本的不同而不同。

可选的,在根据本发明的实施例的确定子进程的父进程的方法中,所述特定筛选条件包括如下条件至少之一:内存详细信息的大小、类型、状态、保护及使用方式。

可选的,在根据本发明的实施例的确定子进程的父进程的方法中,所述大小的取值为4k字节;类型的取值为私有;状态的取值为提交;保护的取值为读写;和/或使用方式的取值为进程环境块(Process Environment Block,PEB)。

可选的,在根据本发明的实施例的确定子进程的父进程的方法中,基于特定筛选条件遍历所述信息列表,筛选出目标详细信息,包括:基于内存详细信息的大小、类型、状态、保护及使用方式中的至少之一来遍历所述信息列表进行筛选,得到由取值为PEB的使用方式所唯一确定的内存详细信息;将所述信息列表中紧邻由取值为PEB的使用方式所唯一确定的内存详细信息的下一条内存详细信息,作为目标详细信息。

可选的,在根据本发明的实施例的确定子进程的父进程的方法中,进一步包括:筛选出与所述子进程对应的父进程的进程路径信息之后,根据所述父进程的进程路径信息对所述父进程的合法性加以校验。

可选的,在根据本发明的实施例的确定子进程的父进程的方法中,根据所述父进程的进程路径信息对所述父进程的合法性加以校验,包括:根据所述父进程的进程路径信息从进程文件列表中查找得到父进程文件;对所述父进程文件加以校验;若校验成功,则确定所述父进程合法;若校验失败,则确定所述父进程不合法。

可选的,在根据本发明的实施例的确定子进程的父进程的方法中,对所述父进程文件加以校验,包括:计算所述父进程文件的哈希值;对所述父进程文件的哈希值与预先存储的父进程文件的哈希值进行一致性校验。

依据本发明的第二方面,提供一种确定子进程的父进程的设备,包括:获取装置,用于获取子进程对应的内存地址信息;查找装置,用于根据所述内存地址信息,查找信息列表,所述信息列表包括多条内存详细信息;筛选装置,用于基于特定筛选条件遍历所述信息列表,筛选出与所述子进程对应的父进程的进程路径信息。

可选的,在根据本发明的实施例的确定子进程的父进程的设备中,所述筛选装置还用于,基于特定筛选条件遍历所述信息列表,筛选出目标详细信息;根据特定偏移地址获取所述目标详细信息的内存内容,并将所述内存内容确定为与所述子进程对应的父进程的进程路径信息;其中,所述特定偏移地址的取值为目标详细信息的起始地址与特定偏移量二者之和,所述特定偏移量用于指示所述进程路径信息在所述目标详细信息中所处的位置。

可选的,在根据本发明的实施例的确定子进程的父进程的设备中,所述特定偏移量的取值因操作系统版本的不同而不同。

可选的,在根据本发明的实施例的确定子进程的父进程的设备中,所述特定筛选条件包括如下条件之一:内存详细信息的大小、类型、状态、保护及使用方式。

可选的,在根据本发明的实施例的确定子进程的父进程的设备中,所述大小的取值为4k字节;类型的取值为私有;状态的取值为提交;保护的取值为读写;和/或使用方式的取值为PEB。

可选的,在根据本发明的实施例的确定子进程的父进程的设备中,所述筛选装置还用于,基于内存详细信息的大小、类型、状态、保护及使用方式中的至少之一来遍历所述信息列表进行筛选,得到由取值为PEB的使用方式所唯一确定的内存详细信息;将所述信息列表中紧邻由取值为PEB的使用方式所唯一确定的内存详细信息的下一条内存详细信息,作为目标详细信息。

可选的,在根据本发明的实施例的确定子进程的父进程的设备中,还包括:校验装置,用于筛选出与所述子进程对应的父进程的进程路径信息之后,根据所述父进程的进程路径信息对所述父进程的合法性加以校验。

可选的,在根据本发明的实施例的确定子进程的父进程的设备中,所述校验装置还用于,根据所述父进程的进程路径信息从进程文件列表中查找得到父进程文件;对所述父进程文件加以校验;若校验成功,则确定所述父进程合法;若校验失败,则确定所述父进程不合法。

可选的,在根据本发明的实施例的确定子进程的父进程的设备中,所述校验装置还用于,计算所述父进程文件的哈希值;对所述父进程文件的哈希值与预先存储的父进程文件的哈希值进行一致性校验。

依据本发明的第三方面,提供一种确定子进程的父进程的设备,包括:一个或者多个处理器;存储器;存储在所述存储器中的程序,当被所述一个或者多个处理器执行时,所述程序使所述处理器执行第一方面、第一方面的任意一项所述的方法。

依据本发明的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有程序,当所述程序被处理器执行时,使得所述处理器执行第一方面、第一方面的任意一项所述的方法。

本发明实施例搜索所述确定子进程的父进程的方法,能够在父进程退出后,直接通过函数调用的方式获取子进程所对应的内存地址信息;进一步地根据所述内存地址信息,查找信息列表,所述信息列表包括多条内存详细信息;最后基于特定筛选条件遍历所述信息列表,筛选出与所述子进程对应的父进程的进程路径信息。如此,本发明实施例省去了实时监控并记录进程创建过程的操作,从而在处理器进行程序运行的过程中不断增强处理器的处理速率,同时减少存储空间的占用,有效提升存储利用率。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:

在附图中,相同或对应的标号表示相同或对应的部分。

图1示意性地示出了本发明的实施方式中确定子进程的父进程的方法的一实施例的流程图;

图2示意性地示出了本发明的实施方式中确定子进程的父进程的设备的组成结构示意图;

图3示意性地示出了根据本发明实施方式的确定子进程的父进程的设备的实现示意图;

图4示意性地示出了存储有实现根据本发明实施方式的确定子进程的父进程的方法的计算机程序的计算机可读存储介质的示意图。

具体实施方式

下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。

下面结合附图对本发明的具体实施方式进行详细描述。

以下描述是以Windows操作系统环境为例进行说明的。

图1示意性地示出了本发明的实施方式中确定子进程的父进程的方法的一实施例的流程图。

如图1所示,本发明实施例确定子进程的父进程的方法10包括:操作101,获取子进程所对应的内存地址信息;操作102,根据所述内存地址信息,查找信息列表,所述信息列表包括多条内存详细信息;操作103,基于特定筛选条件遍历所述信息列表,筛选出与所述子进程对应的父进程的进程路径信息。

在操作101,可以通过调用GetProcessMemoryInfo来获取子进程所对应的内存地址信息。其中,所述内存地址信息的信息格式为包括由内存起始地址和内存结束地址所确定的内存范围的列表形式,如内存范围(0,3f0000),(3f0000,3f1000)…,(53a0000,53a1000)等。当然,所述内存地址信息中只有内存范围,并为包含其他信息。

在操作102,可以通过调用VirtualQuery来根据所述内存地址信息,查找信息列表,所述信息列表包括多条内存详细信息。其中,所述信息列表,所述信息列表包括多条内存详细信息中的每一条内存详细信息可以包括:起始地址、结束地址、大小、类型(如可执行文件、私有的、映射)、状态(如提交、释放、保留、)、保护(如不可访问、只读、读写、读和执行)、使用方式(如未知、可执行文件、映射文件、释放、PEB、线程环境块(Thread Environment Block,TEB)、栈、堆、其他)。

根据本发明一实施方式,操作103,首先基于特定筛选条件遍历所述信息列表,筛选出目标详细信息;进一步地,可以通过调用ReadProcessMemory根据特定偏移地址获取所述目标详细信息的内存内容,并将所述内存内容确定为与所述子进程对应的父进程的进程路径信息;其中,所述特定偏移地址的取值为目标详细信息的起始地址与特定偏移量二者之和,所述特定偏移量用于指示所述进程路径信息在所述目标详细信息中所处的位置。

这里,所述特定偏移量的取值因操作系统版本的不同而不同。举例来说,对于不同操作系统版本如xp、win7、win8、win8.1、win10来说,各自所对应的内存内容里的特定偏移量的取值是不同的,且所述特定偏移量的取值是通过调试获得的。

需要补充说明是,经过大量调试得出,本发明实施例所述特定筛选条件包括所述特定筛选条件包括如下条件至少之一:内存详细信息的大小、类型、状态、保护及使用方式。其中,所述大小的取值可以为4k字节;类型的取值为私有;状态的取值为提交;保护的取值为读写;和/或使用方式的取值为PEB。举例来说,如特定筛选条件为:大小=4k字节,类型=私有,状态=提交,保护=读写,以及使用方式=PEB。当然,这里所述特定筛选条件仅作为示例性说明,并非用于对本发明的限定。

基于上述特定筛选条件,在操作103基于特定筛选条件遍历所述信息列表,筛选出目标详细信息的过程中,首先基于内存详细信息的大小、类型、状态、保护及使用方式中的至少之一来遍历所述信息列表进行筛选,得到由取值为PEB的使用方式所唯一确定的内存详细信息;进一步地,将所述信息列表中紧邻由取值为PEB的使用方式所唯一确定的内存详细信息的下一条内存详细信息,作为目标详细信息。

需要补充说明的是,本发明实施例103在实际筛选过程中,可以先将特定筛选条件中的使用方式取值为未知,即通过大小=4k字节,类型=私有,状态=提交,保护=读写,以及使用方式=未知的筛选条件从所述信息列表中筛选出若干条满足筛选条件的内存详细信息;进一步地,附加上使用方式=PEB这一条件即可从已筛选出的若干条内存详细信息中唯一确定一条内存详细信息;最后,将所述信息列表中紧邻所述由使用方式=PEB所唯一确定的内存详细信息的下一条内存详细信息,作为目标详细信息。

在一示例中,以win10操作系统下的特定偏移量取值为750为例来对本发明实施例操作103进行具体说明如下:

首先,在信息列表中基于特定筛选条件找到使用方式(Usage)=PEB所唯一确定的一条内存详细信息,即:

312d000 3130000 3000 MEM_PRIVATE MEM_COMMIT PAGE_READWRITE PEB[2d50];

进一步地,在信息列表中找到紧挨着使用方式为PEB的内存详细信息的下一条内存详细信息,即:

3240000 3241000 1000 MEM_PRIVATE MEM_COMMIT PAGE_READWRITE<unknown>[............L...];

最后,根据目标详细信息的起始地址3240000,win10操作系统下的特定偏移量750,相加等于特定偏移地址4240750获取所述目标详细信息的内存内容,并将所述内存内容确定为与所述子进程对应的父进程的进程路径信息。

根据本发明一实施方式,如图1所示,在操作103之后,所述方法进一步包括:操作104,根据所述父进程的进程路径信息对所述父进程的合法性加以校验。

在操作104,可以首先根据所述父进程的进程路径信息从进程文件列表中查找得到父进程文件;进一步地对所述父进程文件加以校验;若校验成功,则确定所述父进程合法;若校验失败,则确定所述父进程不合法。

这里,对所述父进程文件加以校验,包括:计算所述父进程文件的哈希值;对所述父进程文件的哈希值与预先存储的父进程文件的哈希值进行一致性校验。其中,所述父进程文件可以为数字签名文件。

在一示例中,对所述父进程文件加以校验可以通过校验所述父进程的数字签名文件的哈希值,若所述父进程的数字签名文件的哈希值与预先存储的父进程的数字签名文件的哈希值不一致,则确定所述父进程被篡改。因此,当确定父进程被篡改的情况下,可以得知当前子进程属于非法启动。这样,可以强制截断所述子进程的非法启动,从而保证整个程序运行的安全性。

如此,本发明实施例能够在父进程退出后,直接通过函数调用的方式获取子进程所对应的内存地址信息;进一步地根据所述内存地址信息,查找信息列表,所述信息列表包括多条内存详细信息;最后基于特定筛选条件遍历所述信息列表,筛选出与所述子进程对应的父进程的进程路径信息。如此,本发明实施例省去了实时监控并记录进程创建过程的操作,从而在处理器进行程序运行的过程中不断增强处理器的处理速率,同时减少存储空间的占用,有效提升存储利用率。

图2示意性地示出了本发明的实施方式中确定子进程的父进程的设备的组成结构示意图。

如图2所示,本发明实施例提供一种确定子进程的父进程的设备20,该设备20包括:获取装置201,用于获取子进程对应的内存地址信息;查找装置202,用于根据所述内存地址信息,查找信息列表,所述信息列表包括多条内存详细信息;筛选装置203,用于基于特定筛选条件遍历所述信息列表,筛选出与所述子进程对应的父进程的进程路径信息。

根据本发明一实施方式,所述筛选装置203还用于,基于特定筛选条件遍历所述信息列表,筛选出目标详细信息;根据特定偏移地址获取所述目标详细信息的内存内容,并将所述内存内容确定为与所述子进程对应的父进程的进程路径信息;其中,所述特定偏移地址的取值为目标详细信息的起始地址与特定偏移量二者之和,所述特定偏移量用于指示所述进程路径信息在所述目标详细信息中所处的位置。

这里,所述特定偏移量的取值因操作系统版本的不同而不同。

根据本发明一实施方式,所述特定筛选条件包括如下条件至少之一:内存详细信息的大小、类型、状态、保护及使用方式。

其中,所述大小的取值可以为4k字节;类型的取值为私有;状态的取值为提交;保护的取值为读写;和/或使用方式的取值为PEB。

根据本发明一实施方式,所述筛选装置203还用于,基于内存详细信息的大小、类型、状态、保护及使用方式中的至少之一来遍历所述信息列表进行筛选,得到由取值为PEB的使用方式所唯一确定的内存详细信息;将所述信息列表中紧邻由取值为PEB的使用方式所唯一确定的内存详细信息的下一条内存详细信息,作为目标详细信息。

根据本发明一实施方式,如图2所示,所述设备20还包括:校验装置204,用于通过所述筛选装置203筛选出与所述子进程对应的父进程的进程路径信息之后,根据所述父进程的进程路径信息对所述父进程的合法性加以校验。

根据本发明一实施方式,所述校验装置204还用于,根据所述父进程的进程路径信息从进程文件列表中查找得到父进程文件;对所述父进程文件加以校验;若校验成功,则确定所述父进程合法;若校验失败,则确定所述父进程不合法。

根据本发明一实施方式,所述校验装置204还用于:计算所述父进程文件的哈希值;对所述父进程文件的哈希值与预先存储的父进程文件的哈希值进行一致性校验。

根据本申请实施例的所述确定子进程的父进程的设备20中的各组成结构的具体配置和操作已经在上面参考图1描述的确定子进程的父进程的方法中详细介绍,并因此,将省略其重复描述。

示例性设备

在介绍了本发明示例性实施方式的方法和设备之后,接下来,介绍根据本发明的另一示例性实施方式的确定子进程的父进程的设备。

所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或计算机可读存储介质。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

在一些可能的实施方式中,本发明确定子进程的父进程的设备可以至少包括一个或多个处理器、以及至少一个存储器。其中,所述存储器存储有程序,当所述程序被所述处理器执行时,使得所述处理器执行本说明书中描述的确定子进程的父进程的方法的各个步骤,例如,处理器可以执行如图1中所示的操作101,获取子进程所对应的内存地址信息;操作102,根据所述内存地址信息,查找信息列表,所述信息列表包括多条内存详细信息;操作103,基于特定筛选条件遍历所述信息列表,筛选出与所述子进程对应的父进程的进程路径信息。

图3示意性地示出了根据本发明实施方式的确定子进程的父进程的设备的实现示意图。

下面参照图3来描述根据本发明的这种实施方式的确定子进程的父进程的设备300。图3显示的设备300仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图3所示,设备300以通用计算设备的形式示出,包括但不限于:上述至少一个处理器310、上述至少一个存储器320、连接不同系统组件(包括存储器320和处理器310)的总线360。

总线360包括地址总线,控制总线和数据总线。

存储器320可以包括易失性存储器,例如随机存取存储器(RAM)321和/或高速缓存存储器322,还可以进一步包括只读存储器(ROM)323。

存储器320还可以包括一组(至少一个)程序模块324,这样的程序模块324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

设备300还可以与一个或多个外部设备30(例如键盘、指向设备、蓝牙设备等)通信。这种通信可以通过输入/输出(I/O)接口340进行,并在显示单元330上进行显示。并且,设备300还可以通过网络适配器350与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器350通过总线360与设备300中的其它模块通信。应当明白,尽管图中未示出,但可以结合设备300使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

示例性计算机程序产品

在一些可能的实施方式中,本发明的各个方面还可以实现为一种计算机程序产品的形式,其包括程序代码,当所述程序代码在被处理器执行时,所述程序代码用于使所述处理器执行上面描述的方法的各个步骤,例如,处理器可以执行如图1中所示的操作101,获取子进程所对应的内存地址信息;操作102,根据所述内存地址信息,查找信息列表,所述信息列表包括多条内存详细信息;操作103,基于特定筛选条件遍历所述信息列表,筛选出与所述子进程对应的父进程的进程路径信息。

所述计算机程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

图4示意性地示出了存储有实现根据本发明实施方式的确定子进程的父进程的方法的计算机程序的计算机可读存储介质的示意图。

如图4所示,描述了根据本发明的实施方式的程序产品400,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端或服务器上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在用户计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

应当注意,尽管在上文详细描述中提及了用于软件测试的若干装置及子装置,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。

虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

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