掌桥专利:专业的专利平台
掌桥专利
首页

进程检测方法、装置、终端及存储介质

文献发布时间:2023-06-19 11:29:13


进程检测方法、装置、终端及存储介质

技术领域

本申请属于终端技术领域,具体而言,涉及一种进程检测方法、装置、终端及存储介质。

背景技术

随着终端技术的不断发展,终端支持的操作系统也迅速发展。当终端的操作系统中存在漏洞时,终端的安全性会降低。例如终端的操作系统在逻辑涉及上存在缺陷或者错误时,用户可以利用漏洞利用技术降低终端操作系统的安全性。

发明内容

本申请实施例提供一种进程检测方法、装置、终端及存储介质,可以提高进程检测的准确性。本申请实施例的技术方案如下:

第一方面,本申请实施例提供一种进程检测方法,其特征在于,所述方法包括:

当检测到操作系统中存在第一进程调用目标接口时,获取所述第一进程的当前父进程,获取所述当前父进程的第一父进程标识;

当所述第一父进程标识和全局变量中记录的第二父进程标识一致时,获取所述第一进程对所述目标接口的调用信息,所述第二父进程标识为历史父进程的父进程标识,所述历史父进程为历史调用所述目标接口的第二进程的父进程;

当所述第一进程对所述目标接口的调用信息满足堆喷条件信息时,确定所述第一进程处于堆喷状态。

第二方面,本申请实施例提供一种进程检测装置,其特征在于,所述装置包括:

标识获取单元,用于当检测到操作系统中存在第一进程调用目标接口时,获取所述第一进程的当前父进程,获取所述当前父进程的第一父进程标识;

信息获取单元,用于当所述第一父进程标识和全局变量中记录的第二父进程标识一致时,获取所述第一进程对所述目标接口的调用信息,所述第二父进程标识为历史父进程的父进程标识,所述历史父进程为历史调用所述目标接口的第二进程的父进程;

状态确定单元,用于当所述第一进程对所述目标接口的调用信息满足堆喷条件信息时,确定所述第一进程处于堆喷状态。

第三方面,一种终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一项所述的方法。

第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项所述的方法。

第五方面,本申请实施例提供一种计算机程序产品,其中,上述计算机程序产品包括存储计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。

本申请一些实施例提供的技术方案带来的有益效果至少包括:

在本申请一个或多个实施例中,通过检测到操作系统中存在第一进程调用目标接口时,可以获取第一进程的当前父进程,获取当前父进程的第一父进程标识,并当第一父进程标识和全局变量中记录的第二父进程标识一致时,获取第一进程对目标接口的调用信息,当第一进程对目标接口的调用信息满足堆喷条件信息时,确定第一进程处于堆喷状态。因此可以在第一父进程标识和第二父进程标识一致,且第一进程对目标接口的调用信息满足堆喷条件信息时,确定第一进程处于堆喷状态,可以对第一进程是否处于堆喷状态进行检测,减少无法检测进程堆喷状态的情况,可以提高进程检测的准确性。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出应用于本申请实施例的一种进程检测方法的背景示意图;

图2示出应用于本申请实施例的一种进程检测方法的背景示意图;

图3示出应用于本申请实施例的一种进程检测方法的系统架构图;

图4示出本申请实施例的一种进程检测方法的流程示意图;

图5示出本申请实施例的一种进程检测方法的流程示意图;

图6示出本申请实施例的一种进程检测方法的流程示意图;

图7示出本申请实施例的一种终端界面的举例示意图;

图8示出本申请实施例的一种终端界面的举例示意图;

图9示出本申请实施例的一种进程检测方法的流程示意图;

图10示出本申请实施例的一种进程检测装置的结构示意图;

图11示出本申请实施例的一种进程检测装置的结构示意图;

图12示出本申请实施例的一种进程检测装置的结构示意图;

图13示出本申请实施例的一种进程检测装置的结构示意图;

图14示出本申请实施例的一种进程检测装置的结构示意图;

图15示出本申请实施例的一种进程检测装置的结构示意图;

图16示出本申请实施例的一种终端的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅为本申请实施例的一部分,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本申请的描述中,需要说明的是,除非另有明确的规定和限定,“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

随着终端技术的不断发展,终端支持的操作系统也迅速发展。当终端的操作系统中存在漏洞时,终端的安全性会降低。例如终端的操作系统在逻辑上存在缺陷或者错误时,用户可以利用漏洞利用技术降低终端操作系统的安全性。堆喷(Heap Spray)是一种漏洞利用技术,用户可以使用堆喷去触发漏洞利用,以便在触发漏洞时达到劫持函数、触发恶意代码,使得终端的操作系统安全性较低。但终端无法检测进程的堆喷状态,进程检测的准确性较低,使得终端的操作系统安全性较低。

根据一些实施例,图1示出应用于本申请实施例的一种进程检测方法的场景示意图。当用户使用终端浏览资讯时,终端界面举例示意图可以如图1所示。当终端无法检测进程的堆喷状态时,终端的安全性会降低。因此当终端处于漏洞利用状态时,终端界面举例示意图可以如图2所示,此时终端的用户无法使用该终端,使得用户使用该终端时的便利性降低,用户使用不方便。

本申请实施例的执行主体是终端,该终端具有操作系统的终端,该终端包括但不限于:可穿戴设备、手持设备、个人电脑、平板电脑、车载设备、智能手机、计算设备或连接到无线调制解调器的其它处理设备等。在不同的网络中终端设备可以叫做不同的名称,例如:电子设备、用户设备、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置、蜂窝电话、无绳电话、个人数字处理(personal digital assistant,PDA)、第五代移动通信技术(5th generation mobilenetworks,5G)网络或未来演进网络中的终端设备等。终端上设置可以运行在终端上的操作系统,是管理和控制终端硬件和终端应用的程序,是终端不可或缺的系统应用。该操作系统包括担不限于安卓Android系统、IOS系统、Windows phone(WP)系统和Ubuntu移动版操作系统等。

图3示出应用于本申请实施例的一种进程检测方法的系统架构图。如图3所示,终端具有操作系统10操作系统中的进程100可以调用接口200,以实现数据通信过程。本申请实施例提供一种进程检测方法,终端通过检测到操作系统中存在第一进程调用目标接口时,可以获取第一进程的当前父进程,获取当前父进程的第一父进程标识,并当第一父进程标识和全局变量中记录的第二父进程标识一致时,获取第一进程对目标接口的调用信息,当第一进程对目标接口的调用信息满足堆喷条件信息时,确定第一进程处于堆喷状态。采用本申请可以提高进程检测的准确性。

下面结合具体的实施例对本申请进行详细说明。

在一个实施例中,如图4所示,提出了一种进程检测方法,该方法可依赖于计算机程序实现,可运行于基于具有操作系统的终端上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。

具体的,该进程检测方法包括:

S101,当检测到操作系统中存在第一进程调用目标接口时,获取第一进程的当前父进程,获取当前父进程的第一父进程标识;

根据一些实施例,操作系统(Operating System,OS)是指终端中可以用于执行管理与配置内存、确定系统资源供需的优先次序等功能的系统。该系统包括但不限于Linux操作系统、Windows操作系统等。本申请实施例的操作系统例如可以是Linux操作系统。Linux操作系统是基于UNIX操作系统发展而来的一种克隆系统,Linux操作系统中的进程可以调用接口以实现数据通信功能。

易于理解的是,进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。进程是一个实体。第一进程是指操作系统检测到的调用目标接口的进程。该第一进程并不特指某一固定进程。当终端检测的时间点发生变化时,该第一进程也会相应变化。当目标接口发生变化时,该第一进程也会相应变化。

根据一些实施例,接口是指终端中用于实现数据通信的通信规则。该接口是操作系统中两个独立的部件进行信息交换的共享边界。目标接口是指操作系统中第一进程调用的接口。该目标接口并不特指某一固定接口。当操作系统中的第一进程调用的接口发生变化时,该目标接口也会相应变化。

易于理解的是,父进程(Parent Process)指已创建一个或多个子进程的进程。在操作系统中,某个子进程的父进程是唯一的。当前父进程是指第一进程的父进程。当前父进程并不特指某一固定父进程。当第一进程发生变化时,该第一进程的当前父进程也会相应变化。当第一进程确定时,该第一进程的当前父进程也是确定的。

根据一些实施例,父进程标识(Parent Process ID,PPID)是指用于唯一标识父进程,即一个父进程有且仅有一个标识。第一父进程标识是指当前父进程对应的标识,即第一父进程标识为第一进程的当前父进程对应的标识。第一父进程标识并不特指某一固定父进程标识。当第一进程发生变化时,该第一进程的当前父进程也会相应变化,第一父进程标识也会相应变化。

根据一些实施例,当终端检测到操作系统中存在第一进程调用目标接口时,终端可以获取第一进程的当前父进程。当终端获取到第一进程的当前父进程时,终端可以获取当前父进程的第一父进程标识。例如终端检测到Linux系统中A进程调用B接口时,终端可以获取A进程的当前父进程。终端获取到的当前父进程例如可以是A1父进程。终端可以获取A1父进程的第一父进程标识。终端获取到的A1父进程的第一父进程标识例如可以是587946125。

S102,当第一父进程标识和全局变量中记录的第二父进程标识一致时,获取第一进程对目标接口的调用信息,第二父进程标识为历史父进程的父进程标识,历史父进程为历史调用目标接口的第二进程的父进程;

根据一些实施例,变量分为局部变量与全局变量,局部变量又可称之为内部变量。局部变量由某对象或某个函数所创建的变量通常都是局部变量,只能被内部引用,而无法被其它对象或函数引用。全局变量也叫外部变量,既可以是某对象函数创建,也可以是在本操作系统内任何地方创建。全局变量是可以被本操作系统内所有进程调用。

易于理解的是,第二父进程标识是指历史父进程的父进程标识。历史父进程为历史调用目标接口的第二进程的父进程。第二进程是指操作系统中历史调用目标接口的进程。第二父进程标识并不特指某一固定父进程标识。当第二进程发生变化时,第二进程的历史父进程也会相应变化,第二父进程标识也会相应变化。历史父进程并不特指某一固定父进程。当第二进程发生变化时,该历史父进程也会相应变化。

根据一些实施例,第一进程对目标接口的调用信息是指第一进程调用目标接口对应的调用信息。当终端检测到操作系统中存在第一进程调用目标接口,获取到第一进程的当前父进程和当前父进程的第一父进程标识时,终端可以检测第一父进程标识和全局变量中的第二父进程标识是否一致。当终端检测到第一父进程标识和第二父进程标识一致时,终端可以获取第一进程对目标接口的调用信息。

易于理解的是,例如终端检测到Linux系统中A进程调用B接口时,终端可以获取A进程的当前父进程。终端获取到的当前父进程例如可以是A1父进程。终端可以获取A1父进程的第一父进程标识。终端获取到的A1父进程的第一父进程标识例如可以是587946125。当终端检测到第一父进程标识587946125和全局变量中的第二父进程标识587946125一致时,终端可以获取A进程对B接口的调用信息。

S103,当第一进程对目标接口的调用信息满足堆喷条件信息时,确定第一进程处于堆喷状态。

根据一些实施例,堆喷是一种漏洞利用技术。在触发漏洞前,操作系统的进程会处于堆喷状态。堆喷状态是指第一进程的状态,第一进程会频繁地调用目标接口。堆喷条件信息是指用于检测第一进程是否处于堆喷状态的条件信息。该堆喷条件信息并不特指某一固定条件信息。例如当第一进程发生变化时,该堆喷条件信息也会相应变化。

易于理解的是,当终端检测到第一父进程标识和全局变量中的第二父进程标识一致时,终端可以获取第一进程对目标接口的调用信息。当终端获取到第一进程对目标接口的调用信息时,终端可以检测第一进程对目标接口的调用信息是否满足堆喷条件信息。当终端检测到第一进程对目标接口的调用信息满足堆喷条件信息时,终端可以确定第一进程处于堆喷状态。

根据一些实施例,例如终端检测到Linux系统中A进程调用B接口时,终端可以获取A进程的当前父进程。终端获取到的当前父进程例如可以是A1父进程。终端可以获取A1父进程的第一父进程标识。终端获取到的A1父进程的第一父进程标识例如可以是587946125。当终端检测到第一父进程标识587946125和全局变量中的第二父进程标识587946125一致时,终端可以获取A进程对B接口的调用信息。当终端检测到A进程对B接口的调用信息满足堆喷条件信息时,终端可以确定A进程处于堆喷状态。

在本申请一个或多个实施例中,通过检测到操作系统中存在第一进程调用目标接口时,可以获取第一进程的当前父进程,获取当前父进程的第一父进程标识,并当第一父进程标识和全局变量中记录的第二父进程标识一致时,获取第一进程对目标接口的调用信息,当第一进程对目标接口的调用信息满足堆喷条件信息时,确定第一进程处于堆喷状态。因此可以在第一父进程标识和第二父进程标识一致,且第一进程对目标接口的调用信息满足堆喷条件信息时,确定第一进程处于堆喷状态,可以对第一进程是否处于堆喷状态进行检测,减少无法检测进程堆喷状态的情况,可以提高进程检测的准确性。另外,通过对进程的检测,可以减少无法检测进程的堆喷状态导致终端的操作系统安全性较低的情况,可以提高操作系统的安全性。

请参见图5,为本申请实施例提供了一种进程检测方法的流程示意图。如图5所示,该方法包括以下步骤S201-S207。

S201,当检测到操作系统中存在第一进程调用目标接口时,获取第一进程的当前父进程,获取当前父进程的第一父进程标识;

S202,在第一父进程标识和全局变量中记录的第二父进程标识不一致时,将当前父进程标识存储至全局变量中,并清空全局变量中第二进程对目标接口的调用信息;

根据一些实施例,全局变量也叫外部变量,既可以是某对象函数创建,也可以是在本操作系统内任何地方创建。全局变量是可以被本操作系统内所有进程调用。

易于理解的是,第二父进程标识是指历史父进程的父进程标识。历史父进程为历史调用目标接口的第二进程的父进程。第二进程是指操作系统中历史调用目标接口的进程。第二父进程标识并不特指某一固定父进程标识。当第二进程发生变化时,第二进程的历史父进程也会相应变化,第二父进程标识也会相应变化。历史父进程并不特指某一固定父进程。当第二进程发生变化时,该历史父进程也会相应变化。

根据一些实施例,第一进程对目标接口的调用信息是指第一进程调用目标接口对应的调用信息。图6示出本申请实施例提供了一种进程检测方法的流程示意图。如图6所示,当终端检测到操作系统中存在第一进程调用目标接口,获取到第一进程的当前父进程和当前父进程的第一父进程标识时,终端可以检测第一父进程标识和全局变量中的第二父进程标识是否一致。当终端检测到第一父进程标识和第二父进程标识不一致时,终端可以将当前父进程标识存储至全局变量中,并清空全局变量中第二进程对目标接口的调用信息。终端将当前父进程标识存储至全局变量中,例如可以是终端将全局变量中的第二父进程标识替换为第一父进程标识。终端将当前父进程标识存储至全局变量中,终端可以删除全局变量中的第二父进程标识,并清空全局变量中第二进程对目标接口的调用信息。

易于理解的是,第一进程例如可以是A进程,第二进程例如可以是C进程。例如终端检测到Linux系统中A进程调用B接口时,终端可以获取A进程的当前父进程。终端获取到的当前父进程例如可以是A1父进程。终端可以获取A1父进程的第一父进程标识。终端获取到的A1父进程的第一父进程标识例如可以是587946125。当终端检测到第一父进程标识587946125和全局变量中的第二父进程标识587946127不一致时,终端可以将第一父进程标识587946125存储至全局变量中,并清空C进程对B接口的调用信息。C进程对B接口的调用信息包括但不限于C进程调用B接口的调用时间信息和调用次数信息。调用次数信息即为全局变量中存储的C进程对B接口调用的计数信息。

S203,当第一父进程标识和全局变量中记录的第二父进程标识一致时,获取第一进程对目标接口的调用信息,第二父进程标识为历史父进程的父进程标识,历史父进程为历史调用目标接口的第二进程的父进程;

具体过程如上所述,此处不再赘述。

根据一些实施例,本申请中的调用信息包括当前时间信息和计数信息。当前时间信息是指终端检测到操作系统中存在第一进程调用目标接口时,第一进程调用目标接口的时间信息。计数信息是指第一进程调用目标接口的次数信息。本申请实施例的计数信息以第一进程调用目标接口的次数信息为例进行说明。

易于理解的是,该当前时间信息例如可以是当前绝对时间信息,当前绝对时间信息例如可以是UNIX(Unix epoch)时间戳,即该当前时刻距UNIX时间基准1970年7月1日00:00:00的相对时间,精确到秒。

可选的,在全局变量中记录的计数信息包括各个接口对应的计数信息,即全局变量中记录有每个接口对应的计数信息,终端对第一进程的检测可以不受其他进程调用其他接口的影响,可以提高进程检测的准确性。当计数信息为调用接口的次数信息时,全局变量中例如可以记录有第一进程调用A接口的次数信息为100次,第三进程调用Q接口的次数信息为120次,第四进程调用W接口的次数信息为110次和第五进程调用E接口的次数信息为140次。

S204,获取全局变量中记录的全局变量时间信息;

根据一些实施例,当终端检测第一进程对目标接口的调用信息是否满足堆喷条件信息之前,终端可以获取全局变量中记录的全局变量时间信息。全局变量时间信息是指第二进程调用目标接口的时间信息,第二进程为历史调用目标接口的进程。

易于理解的是,该全局变量时间信息例如可以是UNIX时间戳,即该当前时刻距UNIX时间基准1970年7月1日00:00:00的相对时间,精确到秒。

S205,在当前时间信息和全局变量时间信息一致,且计数信息大于计数阈值时,确定第一进程处于堆喷状态;

根据一些实施例,当终端获取到第一进程对目标接口的调用信息,即终端获取到第一进程对目标接口的当前时间信息和计数信息,以及终端获取到全局变量中记录的全局变量时间信息时,终端可以检测当前时间信息和全局变量时间信息是否一致,且计数信息是否大于计数阈值。当终端检测到当前时间信息和全局变量时间信息一致,且计数信息大于计数阈值时,终端可以确定第一进程处于堆喷状态。即终端检测到第一进程对目标接口的调用频率大于频率阈值时,终端可以确定第一进程处于堆喷状态。终端进行进程检测对于进程防御和检测具有支撑作用,以便终端可以增加进程调用接口时的攻击的防御力度,增加安进程运行的全性,提高进程被破解的难度。

易于理解的是,计数阈值是指与计数信息对应的阈值。该计数阈值可以是基于用户针对计数阈值的阈值设置指令设置的,还可以是终端出厂时设置的。该计数阈值并不特指某一固定阈值。例如终端接收到用户针对该计数阈值的修改指令时,终端可以基于用户输入的修改指令修改该计数阈值。其中,修改指令包括但不限于语音阈值修改指令、点击阈值修改指令、定时阈值修改指令等等。终端接收到的阈值修改指令例如可以是点击阈值修改指令。终端接收到该点击阈值修改指令时,终端可以基于该电极阈值修改指令对该计数阈值进行修改。此时,终端界面的举例示意图可以如图7所示。

可选的,计数阈值例如可以是200次。终端获取到的当前时间信息例如可以是2019年10月1日12:00:00。终端获取到的全局变量中记录的全局变量时间信息例如可以是2019年10月1日12:00:00。终端获取到第一进程A进程对目标接口B接口的计数信息例如可以是350次。当终端获取到当前时间信息和全局变量时间信息时,终端可以检测当前时间信息和全局变量信息是否一致,且计数信息是否大于计数阈值。当终端检测到当前时间信息2019年10月1日12:00:00和全局变量时间信息2019年10月1日12:00:00一致,且计数信息350次大于计数阈值200次时,终端确定第一进程A进程处于堆喷状态。

S206,停止执行第一进程,重置全局变量中第一进程对目标接口的调用信息;

根据一些实施例,当终端检测到当前时间信息和全局变量时间信息一致,且计数信息大于计数阈值时,终端可以确定第一进程处于堆喷状态,即终端检测到第一进程对目标接口的调用信息满足堆喷条件信息时,终端可以确定第一进程处于堆喷状态。当终端确定第一进程处于堆喷状态时,终端可以停止执行该第一进程,并重置全局变量中第一进程对目标接口的调用信息。当终端确定第一进程处于堆喷状态,全局变量中记录的信息即为第一进程调用目标接口的调用信息。由于在漏洞利用程序执行之前,即触发漏洞利用之前,会存在大量的堆分配操作,即某一接口在较短时长内会被同一进程频繁调用。因此当终端确定第一进程处于堆喷状态,即为目标接口存在漏洞利用风险时,可以停止执行第一进程,可以减少漏洞利用的风险,提高终端中操作系统的安全性。另外,终端重置全局变量中第一进程对目标接口的调用信息,可以减少第一进程对目标接口的调用信息对下一进程检测的影响,可以提高终端对下一进程检测的准确性。

易于理解的是,终端停止执行第一进程的步骤和重置全局变量中第一进程对目标接口的调用信息的步骤可以是同时进行的,也可以是终端先执行停止执行第一进程的步骤,再执行重置全局变量中第一进程对目标接口的调用信息的步骤,还可以是终端先执行重置全局变量中第一进程对目标接口的调用信息的步骤,再执行停止执行第一进程的步骤。

可选的,计数阈值例如可以是200次。终端获取到的当前时间信息例如可以是2019年10月1日12:00:00。终端获取到的全局变量中记录的全局变量时间信息例如可以是2019年10月1日12:00:00。终端获取到第一进程A进程对目标接口B接口的计数信息例如可以是350次。当终端获取到当前时间信息和全局变量时间信息时,终端可以检测当前时间信息和全局变量信息是否一致,且计数信息是否大于计数阈值。当终端检测到当前时间信息2019年10月1日12:00:00和全局变量时间信息2019年10月1日12:00:00一致,且计数信息350次大于计数阈值200次时,终端确定第一进程A进程处于堆喷状态。终端可以停止执行A进程,并重置全局变量中A进程调用B接口的调用信息,即重置全局变量中A进程调用B接口的当前时间信息和计数信息。

S207,获取第一进程的进程信息,存储进程信息并基于进程信息发出提示信息。

根据一些实施例,当终端检测到当前时间信息和全局变量时间信息一致,且计数信息大于计数阈值时,终端可以确定第一进程处于堆喷状态,即终端检测到第一进程对目标接口的调用信息满足堆喷条件信息时,终端可以确定第一进程处于堆喷状态。当终端确定第一进程处于堆喷状态时,终端可以获取第一进程的进程信息。终端在获取到第一进程的进程信息时,终端可以存储进程信息并基于进程信息发出提示信息。该进程信息包括但不限于第一进程的进程标识,当前父进程的当前父进程标识、目标接口信息以及第一进程处于堆喷状态的信息。该提示信息例如可以是第一进程处于堆喷状态的提示信息。该提示信息例如可以包括进程信息中的至少一个。

易于理解的是,终端在确定第一进程处于堆喷状态之前,终端可以在进程检测程序中设置埋点。当终端确定第一进程处于堆喷状态时,可以触发该埋点,以便终端可以获取第一进程的进程信息,并存储该进程信息。终端对进程信息的存储对于威胁情报分析、恶意行为分析具有重要的数据支撑作用。

可选的,终端存储该进程信息时,终端可以将该进程信息存储在终端的存储器中。当终端存储该进程信息时,终端还可以将该进程信息发送至服务器进行存储,即当服务器接收到终端发送进程信息时,服务器可以存储该进程信息。

根据一些实施例,当终端获取到第一进程的进程信息时,终端可以对该进程信息进行上报。例如,终端可以将该进程信息上报至守护进程。守护进程可以是终端的操作系统中用于收集第一进程处于堆喷状态信息的功能。该守护进程可以是预先设置的进程。具体的守护进程本申请实施例不作限定。

可选的,计数阈值例如可以是200次。终端获取到的当前时间信息例如可以是2019年10月1日12:00:00。终端获取到的全局变量中记录的全局变量时间信息例如可以是2019年10月1日12:00:00。终端获取到第一进程A进程对目标接口B接口的计数信息例如可以是350次。当终端获取到当前时间信息和全局变量时间信息时,终端可以检测当前时间信息和全局变量信息是否一致,且计数信息是否大于计数阈值。当终端检测到当前时间信息2019年10月1日12:00:00和全局变量时间信息2019年10月1日12:00:00一致,且计数信息350次大于计数阈值200次时,终端确定第一进程A进程处于堆喷状态。终端确定第一进程A进程处于堆喷状态时,终端发出的提示信息例如可以是第一进程A进程处于堆喷状态,请及时进行处理。此时,终端界面的举例示意图可以是如图8所示。

根据一些实施例,终端发出提示信息的方式包括但不限于展示方式、振动方式、闪烁方式等。展示方式包括但不限于显示方式、音量提示方式等等。

根据一些实施例,终端可以同时执行步骤206和步骤207,也可以是只执行步骤206和步骤207中任意一步。

在本申请一个或多个实施例中,当检测到操作系统中存在第一进程调用目标接口时,获取第一进程的当前父进程,获取当前父进程的第一父进程标识,在第一父进程标识和全局变量中记录的第二父进程标识不一致时,将当前父进程标识存储至全局变量中,并清空全局变量中第二进程对目标接口的调用信息,可以在第一进程不处于堆喷状态时将当前父进程标识和第一进程对目标接口的调用信息存储至全局变量中,以便终端可以对下一进程进行检测。其次,当第一父进程标识和全局变量中记录的第二父进程标识一致时,获取第一进程对目标接口的调用信息,该调用信息包括当前时间信息和计数信息,因此可以在获取到全局变量中记录的全局变量时间信息时,在当前时间信息和全局变量时间信息一致,且计数信息大于计数阈值时,确定第一进程处于堆喷状态,可以提高进程检测的准确性。另外,在第一进程处于堆喷状态时,可以停止执行第一进程,重置全局变量中第一进程对目标接口的调用信息,可以减少漏洞利用的风险,提高终端中操作系统的安全性,并减少第一进程对目标接口的调用信息对下一进程检测的影响,可以提高终端对下一进程检测的准确性。最后,在第一进程处于堆喷状态时,可以获取第一进程的进程信息,并基于进程信息发出提示信息,可以减少第一进程处于堆喷状态的时间,减少终端操作系统被漏洞利用的机率,提高终端操作系统的安全性。

请参见图9,为本申请实施例提供了一种进程检测方法的流程示意图。如图9所示,该方法包括以下步骤S301-S305。

S301,当检测到操作系统中存在第一进程调用目标接口时,获取第一进程的当前父进程,获取当前父进程的第一父进程标识;

S302,当第一父进程标识和全局变量中记录的第二父进程标识一致时,获取第一进程对目标接口的调用信息,第二父进程标识为历史父进程的父进程标识,历史父进程为历史调用目标接口的第二进程的父进程;

根据一些实施例,本申请中的调用信息包括当前时间信息和计数信息。当前时间信息是指终端检测到操作系统中存在第一进程调用目标接口时,第一进程调用目标接口的时间信息。计数信息是指第一进程调用目标接口的次数信息。本申请实施例的计数信息以第一进程调用目标接口的次数信息为例进行说明。

S303,获取终端芯片的芯片信息,获取与芯片信息对应的堆喷条件信息;

根据一些实施例,当终端检测第一进程对目标接口的调用信息是否满足堆喷条件信息之前,终端可以获取终端芯片的芯片信息。其中不同终端芯片对应不用的芯片信息。当终端获取到终端芯片的芯片信息时,终端可以获取与芯片信息对应的堆喷条件信息。由于不同的芯片对应不同的堆喷条件信息,因此,终端可以通过获取终端芯片的芯片信息,获取到与芯片信息对应的堆喷条件信息,可以提高进程检测的准确性。

易于理解的是,终端获取到终端芯片的芯片信息时,终端例如可以从服务器中获取与芯片信息对应的堆喷条件信息,终端还可以直接从终端的存储器中获取与芯片信息对应的堆喷条件信息。

可选的,当终端检测第一进程对目标接口的调用信息是否满足堆喷条件信息之前,终端可以获取终端芯片的芯片信息。该芯片信息包括但不限于芯片标识、芯片大小等。终端获取到的终端芯片的芯片信息例如可以是芯片标识。该芯片标识例如可以是R芯片标识。终端获取到与R芯片标识对应的堆喷条件信息例如可以是当前时间信息与全局变量中记录的全局变量时间信息一致,且计数信息大于200次。该芯片标识例如还可以是T芯片标识。终端获取到与T芯片标识对应的堆喷条件信息例如可以是当前时间信息与全局变量中记录的全局变量时间信息一致,且计数信息大于400次。

S304,在第一进程对目标接口的调用信息不满足堆喷条件信息时,获取全局变量中的全局变量时间信息;

根据一些实施例,当终端获取到第一进程对目标接口的调用信息和堆喷条件信息时,终端可以检测第一进程对目标接口的调用信息是否满足堆喷条件信息。当终端可以检测第一进程对目标接口的调用信息是否满足堆喷条件信息。当终端检测到第一进程对目标接口的调用信息不满足堆喷条件信息时,终端可以获取全局变量中的全局变量时间信息。当第一进程对目标接口的调用信息包括当前时间信息和计数信息时,终端检测到第一进程对目标接口的调用信息不满足堆喷条件信息例如可以是当前时间信息与全局变量中记录的全局变量时间信息不一致和计数信息不大于计数阈值中至少一个。

易于理解的是,终端获取到的堆喷条件信息例如可以是当前时间信息与全局变量中记录的全局变量时间信息一致,且计数信息大于计数阈值200次。终端获取到的当前时间信息例如可以是2019年10月1日12:00:00。终端获取到第一进程A进程对目标接口B接口的计数信息例如可以是100次。当终端检测到当前时间信息与全局变量中记录的全局变量时间信息一致,但计数信息100次小于计数阈值200次时,终端可以获取全局变量中记录的全局变量时间信息。

S305,在全局变量时间信息为零时,将当前时间信息存储至全局变量中,将计数信息加一;

根据一些实施例,当终端检测到第一进程对目标接口的调用信息不满足堆喷条件信息,获取全局变量中的全局变量时间信息时,终端可以检测全局变量时间信息是否为零。由于终端开机之后,默认全局变量时间信息为零,因此终端检测检测全局变量时间信息是否为零,可以减少终端开机之后操作系统中第一进程第一次调用目标接口,误判第一进程处于堆喷状态的情况,可以提高进程检测的准确性。

易于理解的是,当终端检测到全局变量时间信息为零时,终端可以确定第一进程不处于堆喷状态,终端可以当前时间信息存储至全局变量中,并将计数信息加1。

可选的,终端获取到的堆喷条件信息例如可以是当前时间信息与全局变量中记录的全局变量时间信息一致,且计数信息大于计数阈值200次。终端获取到的当前时间信息例如可以是2019年10月1日12:00:00。终端获取到第一进程A进程对目标接口B接口的计数信息例如可以是100次。当终端检测到当前时间信息与全局变量中记录的全局变量时间信息不一致,且计数信息100次小于计数阈值200次时,终端可以获取全局变量中记录的全局变量时间信息。当终端检测到全局变量时间信息为零时,终端可以将当前时间信息2019年10月1日12:00:00存储至全局变量中,将计数信息加一,即将计数信息100次更新为101次。

S306,在全局变量时间信息不为零时,将计数信息加一。

根据一些实施例,当终端检测到第一进程对目标接口的调用信息不满足堆喷条件信息,获取全局变量中的全局变量时间信息时,终端可以检测全局变量时间信息是否为零。当终端检测到全局变量时间信息不为零,即终端确定第一进程不处于堆喷状态且不是开机之后操作系统中第一进程第一次调用目标接口时,终端可以确定将计数信息加1。

可选的,终端获取到的堆喷条件信息例如可以是当前时间信息与全局变量中记录的全局变量时间信息一致,且计数信息大于计数阈值200次。终端获取到的当前时间信息例如可以是2019年10月1日12:00:00。终端获取到第一进程A进程对目标接口B接口的计数信息例如可以是100次。当终端检测到当前时间信息与全局变量中记录的全局变量时间信息一致,但计数信息100次小于计数阈值200次时,终端可以获取全局变量中记录的全局变量时间信息。当终端检测到全局变量时间信息不为零时,终端可以将计数信息加一,即将计数信息100次更新为101次。

在本申请一个或多个实施例中,终端在检测第一进程对目标接口的调用信息满足堆喷条件信息之前,可以获取终端芯片的芯片信息,获取与芯片信息对应的堆喷条件信息,可以提高第一进程检测的准确性。其次,在第一进程对目标接口的调用信息不满足堆喷条件信息时,获取全局变量中的全局变量时间信息,在全局变量时间信息为零时,将当前时间信息存储至全局变量中,将计数信息加一,可以减少终端开机之后操作系统中第一进程第一次调用目标接口,误判第一进程处于堆喷状态的情况,可以提高进程检测的准确性。另外,在全局变量时间信息不为零时,将计数信息加一,可以提高终端对下一进程检测的准确性。

下面将结合附图10-15,对本申请实施例提供的进程检测装置进行详细介绍。需要说明的是,附图10-15所示的进程检测装置,用于执行本申请图4-图9所示实施例的方法,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请图4-图9所示的实施例。

请参见图10,其示出本申请实施例的进程检测装置的结构示意图。该进程检测装置1000可以通过软件、硬件或者两者的结合实现成为用户终端的全部或一部分。

根据一些实施例,该进程检测装置1000包括标识获取单元1001、信息获取单元1002和状态确定单元1003,具体用于:

标识获取单元1001,用于当检测到操作系统中存在第一进程调用目标接口时,获取第一进程的当前父进程,获取当前父进程的第一父进程标识;

信息获取单元1002,用于当第一父进程标识和全局变量中记录的第二父进程标识一致时,获取第一进程对目标接口的调用信息,第二父进程标识为历史父进程的父进程标识,历史父进程为历史调用目标接口的第二进程的父进程;

状态确定单元1003,用于当第一进程对目标接口的调用信息满足堆喷条件信息时,确定第一进程处于堆喷状态。

根据一些实施例,图11示出本申请实施例的一种进程检测装置的结构示意图。如图11所示,该进程检测装置1000还包括信息清空单元1004,用于当检测到操作系统中存在第一进程调用目标接口时,获取第一进程的当前父进程,获取当前父进程的第一父进程标识之后,在第一父进程标识和全局变量中记录的第二父进程标识不一致时,将当前父进程标识存储至全局变量中,并清空全局变量中第二进程对目标接口的调用信息。

根据一些实施例,调用信息包括当前时间信息和计数信息,状态确定单元1003,用于当第一进程对目标接口的调用信息满足堆喷条件信息时,确定第一进程处于堆喷状态时,具体用于:

获取全局变量中记录的全局变量时间信息;

在当前时间信息和全局变量时间信息一致,且计数信息大于计数阈值时,确定第一进程处于堆喷状态。

根据一些实施例,图12示出本申请实施例的一种进程检测装置的结构示意图。如图13所示,调用信息包括当前时间信息和计数信息,该进程检测装置1000还包括时间信息获取单元1005,用于当第一父进程标识和全局变量中记录的第二父进程标识一致时,获取第一进程对目标接口的调用信息之后,在第一进程对目标接口的调用信息不满足堆喷条件信息时,获取全局变量中的全局变量时间信息;

在全局变量时间信息为零时,将当前时间信息存储至全局变量中,将计数信息加一;

在全局变量时间信息不为零时,将计数信息加一。

根据一些实施例,图13示出本申请实施例的一种进程检测装置的结构示意图。如图13所示,该进程检测装置1000还包括信息重置单元1006,用于当第一进程对目标接口的调用信息满足堆喷条件信息时,确定第一进程处于堆喷状态之后,停止执行第一进程,重置全局变量中第一进程对目标接口的调用信息。

根据一些实施例,图14示出本申请实施例的一种进程检测装置的结构示意图。如图14所示,该进程检测装置1000还包括信息提示单元1007,用于当第一进程对目标接口的调用信息满足堆喷条件信息时,确定第一进程处于堆喷状态之后,获取第一进程的进程信息,存储进程信息并基于进程信息发出提示信息。

根据一些实施例,图15示出本申请实施例的一种进程检测装置的结构示意图。如图15所示,该进程检测装置1000还包括芯片信息获取单元1008,用于当第一进程对目标接口的调用信息满足堆喷条件信息时,确定第一进程处于堆喷状态之前,获取终端芯片的芯片信息,获取与芯片信息对应的堆喷条件信息。

在本申请一个或多个实施例中,通过检测到操作系统中存在第一进程调用目标接口时,可以获取第一进程的当前父进程,获取当前父进程的第一父进程标识,并当第一父进程标识和全局变量中记录的第二父进程标识一致时,获取第一进程对目标接口的调用信息,当第一进程对目标接口的调用信息满足堆喷条件信息时,确定第一进程处于堆喷状态。因此可以在第一父进程标识和第二父进程标识一致,且第一进程对目标接口的调用信息满足堆喷条件信息时,确定第一进程处于堆喷状态,可以对第一进程是否处于堆喷状态进行检测,减少无法检测进程堆喷状态的情况,可以提高进程检测的准确性。

请参见图16,为本申请实施例提供的一种终端的结构示意图。如图16所示,所述终端1600可以包括:至少一个处理器1601,至少一个网络接口1604,用户接口1603,存储器1605,至少一个通信总线1602。

其中,通信总线1602用于实现这些组件之间的连接通信。

其中,用户接口1603可以包括显示屏,可选用户接口1603还可以包括标准的有线接口、无线接口。

其中,网络接口1604可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。

其中,处理器1601可以包括一个或者多个处理核心。处理器1601利用各种借口和线路连接整个终端1600内的各个部分,通过运行或执行存储在存储器1605内的指令、程序、代码集或指令集,以及调用存储在存储器1605内的数据,执行终端1600的各种功能和处理数据。可选的,处理器1601可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器1601可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1601中,单独通过一块芯片进行实现。

其中,存储器1605可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器1605包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1605可用于存储指令、程序、代码、代码集或指令集。存储器1605可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1605可选的还可以是至少一个位于远离前述处理器1601的存储装置。如图16所示,作为一种计算机存储介质的存储器1605中可以包括操作系统、网络通信模块、用户接口模块以及用于进程检测的应用程序。

在图16所示的终端1600中,用户接口1603主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1601可以用于调用存储器1605中存储的进程检测的应用程序,并具体执行以下操作:

当检测到操作系统中存在第一进程调用目标接口时,获取第一进程的当前父进程,获取当前父进程的第一父进程标识;

当第一父进程标识和全局变量中记录的第二父进程标识一致时,获取第一进程对目标接口的调用信息,第二父进程标识为历史父进程的父进程标识,历史父进程为历史调用目标接口的第二进程的父进程;

当第一进程对目标接口的调用信息满足堆喷条件信息时,确定第一进程处于堆喷状态。

根据一些实施例,处理器1601用于执行当检测到操作系统中存在第一进程调用目标接口时,获取第一进程的当前父进程,获取当前父进程的第一父进程标识之后,还具体执行以下操作:

在第一父进程标识和全局变量中记录的第二父进程标识不一致时,将当前父进程标识存储至全局变量中,并清空全局变量中第二进程对目标接口的调用信息。

根据一些实施例,调用信息包括当前时间信息和计数信息,处理器1601用于执行当第一进程对目标接口的调用信息满足堆喷条件信息时,确定第一进程处于堆喷状态时,具体执行以下操作:

获取全局变量中记录的全局变量时间信息;

在当前时间信息和全局变量时间信息一致,且计数信息大于计数阈值时,确定第一进程处于堆喷状态。

根据一些实施例,调用信息包括当前时间信息和计数信息,处理器1601用于执行当第一父进程标识和全局变量中记录的第二父进程标识一致时,获取第一进程对目标接口的调用信息之后,还具体执行以下操作:

在第一进程对目标接口的调用信息不满足堆喷条件信息时,获取全局变量中的全局变量时间信息;

在全局变量时间信息为零时,将当前时间信息存储至全局变量中,将计数信息加一;

在全局变量时间信息不为零时,将计数信息加一。

根据一些实施例,处理器1601用于执行当第一进程对目标接口的调用信息满足堆喷条件信息时,确定第一进程处于堆喷状态之后,还具体执行以下操作:

停止执行第一进程,重置全局变量中第一进程对目标接口的调用信息。

根据一些实施例,处理器1601用于执行当第一进程对目标接口的调用信息满足堆喷条件信息时,确定第一进程处于堆喷状态之后,还具体执行以下操作:

获取第一进程的进程信息,存储进程信息并基于进程信息发出提示信息。

根据一些实施例,处理器1601用于执行当第一进程对目标接口的调用信息满足堆喷条件信息时,确定第一进程处于堆喷状态之前,还具体执行以下操作:

获取终端芯片的芯片信息,获取与芯片信息对应的堆喷条件信息。

在本申请一个或多个实施例中,通过检测到操作系统中存在第一进程调用目标接口时,可以获取第一进程的当前父进程,获取当前父进程的第一父进程标识,并当第一父进程标识和全局变量中记录的第二父进程标识一致时,获取第一进程对目标接口的调用信息,当第一进程对目标接口的调用信息满足堆喷条件信息时,确定第一进程处于堆喷状态。因此可以在第一父进程标识和第二父进程标识一致,且第一进程对目标接口的调用信息满足堆喷条件信息时,确定第一进程处于堆喷状态,可以对第一进程是否处于堆喷状态进行检测,减少无法检测进程堆喷状态的情况,可以提高进程检测的准确性。

本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。其中,计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微型驱动器以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC),或适合于存储指令和/或数据的任何类型的媒介或设备。

本申请实施例还提供一种计算机程序产品,该计算机程序产品包括存储计算机程序的非瞬时性计算机可读存储介质,该计算机程序可操作来使计算机执行如上述方法实施例中记载的任何一种进程检测方法的部分或全部步骤。

本领域的技术人员可以清楚地了解到本申请的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”和“模块”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是现场可编程门阵列(Field-ProgrammaBLE GateArray,FPGA)、集成电路(Integrated Circuit,IC)等。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通进程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random AccessMemory,RAM)、磁盘或光盘等。

以上所述者,仅为本公开的示例性实施例,不能以此限定本公开的范围。即但凡依本公开教导所作的等效变化与修饰,皆仍属本公开涵盖的范围内。本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未记载的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的范围和精神由权利要求限定。

相关技术
  • 进程检测方法、装置、终端及存储介质
  • 一种应用进程检测方法、装置及终端设备
技术分类

06120112941226