软件检测方法及装置的制造方法
【技术领域】
[0001] 本发明涉及计算机检测领域,尤其涉及一种软件检测方法及装置。
【背景技术】
[0002] 随着计算机技术的飞速发展以及各种终端的普及,运行于终端中的各种软件也越 来越丰富,但与此同时软件使用的有效及安全性也逐渐受到了威胁,这就急需要提出一种 能够快速检测出软件安全及有效使用性的处理方法。
[0003] 例如,用户在软件操作时,常常会遇到电脑内存空间不足、软件启动时间过长、影 音无法播放等问题。这些问题往往是用户无法处理的,并且通常都是问题出现后用户才去 处理,这样就会导致处理不及时而造成严重经济损失或者,因为处理不当导致电脑出现异 常故障等问题。
[0004] 针对上述所出现的软件问题,现有技术通常是当用户在使用软件时发现无法正常 操作会针对该软件进行检测,进而判断该软件是否存在需要解决的问题。并且,在检测过程 中,用户必须对该软件中的所有支持文件或相应组件通过具体的检查软件进行逐一扫描, 才完成对软件的检测,这需要有较高的专业知识、并导致较高的操作成本。
【发明内容】
[0005] 鉴于上述缺陷,提出了本发明的方案,其中,提供一种软件检测方法及装置,以克 服上述缺陷,至少部分地解决更有效地进行软件的快速检测、进而不会干扰操作系统的运 行,以提高软件的安全性等技术问题。
[0006] 依据本发明的一个方面,提供了一种软件检测方法,其包括:将待检测软件的软件 信息与预设的一种或多种软件问题类别中的问题信息进行匹配;其中,软件问题类别是对 软件存在的一个或多个问题进行分类而获得,每种软件问题类别中包含与该类别下的一个 或多个问题相关的问题信息;如果待检测软件的软件信息匹配上一种或多种软件问题类别 中的问题信息,则确定待检测软件存在相应的一种或多种软件问题类别下的一个或多个问 题。
[0007] 可选地,将预先获取的软件的一种或多种软件信息与服务器中存储的软件的相应 的软件信息进行匹配;如果一种或多种软件信息与存储的所述软件的相应的软件信息未匹 配上,则根据一种或多种软件信息确定软件存在的一个或多个问题,并将一种或多种软件 信息作为与一个或多个问题相关的问题信息;对一个或多个问题进行分类,得到软件问题 类别,并在软件问题类别中记录与该类别下的一个或多个问题相关的问题信息。
[0008] 可选地,如果待检测软件的软件信息未匹配上任一所述软件问题类别中的任一问 题信息,则确定待检测软件不存在问题;将不存在问题的待检测软件进行汇总,以形成无软 件问题类别。
[0009] 可选地,将已经确定为存在问题的软件中属于相同软件问题类别的软件,汇总到 一个展示条目下;其中,一种软件问题类别对应到一个展示条目,每个展示条目中展示对应 的一种软件问题类别及属于该软件问题类别的一个或多个软件。
[0010] 可选地,根据检测结果确定为不存在问题的软件,以无软件问题类别汇总到无软 件问题类别的展示条目下。
[0011] 根据本发明的另一方面,提供了一种软件检测的装置,其包括:检测模块,用于将 待检测软件的软件信息与预设的一种或多种软件问题类别中的问题信息进行匹配;确定模 块,用于如果待检测软件的软件信息匹配上一种或多种软件问题类别中的问题信息,则确 定待检测软件存在相应的一种或多种软件问题类别下的一个或多个问题;预置模块,用于 对软件存在的一个或多个问题进行分类而获得软件问题类别,每种软件问题类别中包含与 该类别下的一个或多个问题相关的问题信息。
[0012] 可选地,预置模块还包括:匹配子模块,用于将预先获取的软件的一种或多种软件 信息与服务器中存储的软件的相应的软件信息进行匹配;确定子模块,用于如果一种或多 种软件信息与存储的软件的相应的软件信息未匹配上,则根据一种或多种软件信息确定所 述软件存在的一个或多个问题,并将一种或多种软件信息作为与所述一个或多个问题相关 的问题信息;分类子模块,用于对一个或多个问题进行分类,得到软件问题类别,并在软件 问题类别中记录与该类别下的一个或多个问题相关的问题信息。
[0013] 可选地,检测模块,还包括:如果待检测软件的软件信息未匹配上任一软件问题类 别中的任一问题信息,则确定待检测软件不存在问题;将不存在问题的待检测软件进行汇 总,以形成无软件问题类别。
[0014] 可选地,输出模块,用于将已经确定为存在问题的软件中属于相同软件问题类别 的软件,汇总到一个展示条目下;其中,一种软件问题类别对应到一个展示条目,每个展示 条目中展示对应的一种软件问题类别及属于该软件问题类别的一个或多个软件。
[0015] 可选地,输出模块,还用于根据检测结果确定为不存在问题的软件,以无软件问题 类别汇总到无软件问题类别的展示条目下。
[0016] 根据本发明的软件检测的方案,可以实现将用户的待检测软件的软件信息,与预 设的各个软件问题类别中的代表一个或多个软件问题的相应的问题信息进行匹配,当待检 测软件的软件信息与问题信息匹配上,则确定该待检测软件存在该问题信息所代表的软件 问题并属于相应的软件问题类别,从而,利用待检测软件的软件信息与问题信息做匹配的 检测方式,能快速准确地得出软件存在的问题,而无需对每个软件所有支持文件或相应组 件都具体做逐一扫描,并且,检测速度快而不会干扰操作系统正常运行。进一步,采用软件 信息匹配的检测方式,能提前对待检测软件做检测处理,无需待检测软件运行,即能在软件 运行前就能即能迅速地发现问题,保障用户软件的安全,并减轻用户终端的系统压力。进一 步,本发明的方案,操作简单、操作成本低其无需用户操作,不必要求用户具有较高的计算 机专业知识,有助于提升用户的体验。
[0017] 再者,将一个或多个软件问题划分出类别、在每个类别下记录相应的代表软件问 题的问题信息,不仅仅便于快速检测软件存在的问题并确定相应的类别,还能够将检测出 的存在甚至不存在软件问题的软件按类别列出,直观地按类别条目展示给用户,进一步提 升用户的体验。
[0018] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段, 而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够 更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0019]过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技 术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的 限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0020] 图1示出了根据本发明的软件检测方法的一实施例的具体流程图;
[0021] 图2示出了根据本发明一个实施例中的建立软件问题分类的方法流程图;
[0022] 图3示出了根据本发明的软件检测装置的一实施例的结构图;
[0023]图4示出了根据本发明一个实施例的展示软件问题的示意图;以及,
[0024]图5示出了根据本发明一个实施例的检测软件方法的流程图。
【具体实施方式】
[0025]下面将参照附图更详细地描述本发明公开的示例性实施例。虽然附图中显示了本 发明公开的示例性实施例,然而应当理解,可以以各种形式实现本发明公开的内容而不应 被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明的公 开,并且能够将本发明公开的范围完整的传达给本领域的技术人员。
[0026] 如图5所示,为本发明的一实施例的软件检测方法的流程图。其包括,步骤S501, 将待检测软件的软件信息与预设的一种或多种软件问题类别中的问题信息进行匹配;步骤 S502,如果待检测软件的软件信息匹配上一种或多种软件问题类别中的问题信息,则确定 所述待检测软件存在相应的一种或多种软件问题类别下的一个或多个问题。其中,所述软 件问题类别是对软件存在的一个或多个问题进行分类而获得,每种软件问题类别中包含与 该类别下的一个或多个问题相关的问题信息。
[0027]下面对本发明实施例提供的软件检测方法进行更详细地介绍。图1是根据本发明 一实施例的更具体的数据处理方法的流程图。
[0028] 在步骤S101中,根据用户的软件检测请求,获取待检测软件的软件信息。
[0029]根据本发明的一实施例,软件检测请求可以是用户向服务器(该
服务器可以放置 在本地或者云端)发出的、对该用户的终端设备中至少当前已经安装的应用软件和/或终端 设备中的系统软件等进行安全性等检测的用户请求。终端设备如电脑、手机等。具体地,该 检测请求,可以通过用户的终端设备上能与服务器进行交互的接口(如浏览器或其他接口 应用程序等)在启动时或运行时,由用户触发命令而发出(如触发接口应用程序的"检测"按 钮等)。
[0030]其中,待检测软件是用户的终端设备中具有(如安装或存储)的各种软件,其至少 包括用户的终端设备中当前已经安装的应用软件和/或系统软件。
[0031]软件信息,指软件具备的代表该软件的固定特征的各种信息以及运行(使用)情 况的各种信息。软件信息至少包括软件的基础信息和/或使用信息。具体地,软件的基础 信息,是主要代表该软件的固定特征的各种信息,如软件的版本号、占用空间大小、适合安 装系统、适合插件信息、最近一次更新时间等。软件的使用信息,是主要代表该软件的运行 /使用情况的各种信息,如软件的安装信息(如:安装时间、安装组件等),软件的运行信息 (如:每次启动状态、运行非常状态即使用或调用时出现过的非正常状态、或其他运行状态 等),软件注册表调用信息(如:调用时间、调用出错等),或者是与软件相关的缓存的状态信 息(如:垃圾缓存状态等),等等。
[0032] 在一个实施例中,服务器接收到来自用户的软件检测请求,对该请求做出响应,首 先从用户的终端设备中获取每个待检测软件的软件日志,然后从该软件日志中提取出该软 件的软件信息。
[0033] 在步骤S102中,将待检测软件的软件信息与预设的一种或多种软件问题类别中 的问题信息进行匹配。
[0034]由此,可以判断待检测软件的软件信息是否与一个或多个问题信息对应,进而才 能确定是否存在对应的问题信息所指示的软件问题。
[0035] 根据本发明的一个实施例,服务器响应用户的请求,为了执行对用户的终端设备 上的全部或部分的软件的检测,服务器采用将获取的这些待检测软件的软件信息与预先设 置的软件问题类别中的问题信息做匹配的方式,快速检测这些软件信息是否能对应各个软 件问题类别下的问题信息,从而确定提供该软件信息的待检测软件是否存在问题以及存在 哪类问题。
[0036] 其中,问题信息也是软件信息,具体地,可以是:一个问题信息,就是与软件存在的 一个或多个问题相关的一个软件信息或几个软件信息的组合,并且,该问题信息记录在软 件问题类别中。
[0037] 其中,软件问题类别是对软件存在的一个或多个问题进行分类而获得,每种软件 问题类别中包含与该类别下的一个或多个问题相关的问题信息。具体地,软件存在的不同 的问题,有的几个问题具有相同的性质或特点,可以划分到同一个类别下。每种类别下,包 含划分到该类别下的软件的"问题",并且每种类别下记录了与这些"问题"相关的问题信息 (参见表1所示)。其中,"问题"可以是指软件的缺陷、或软件需要待处理的与安全性有关的 问题(如版本过低不安全)等。
[0038] 软件问题类别的获得,具体地,可以是一分类预处理过程或者预先设置过程,这将 在下面结合图2具体描述软件问题类别预先设置的一实施例。
[0039] 由此,服务器定期或不定期获取软件及其软件信息,并通过对将获取的软件信息 与服务器存储的该软件的软件信息进行匹配而得到各种软件问题,并以此进行分类和记录 问题信息,即执行预处理,以形成软件问题类别I~N(N为自然数,可以固定分类也可以根 据实际预处理情况改变)。
[0040] 在本发明的一个实施例中,可以将服务器从用户的终端设备上获取的待检测软件 的软件信息,逐一与每一软件问题类别中的问题信息进行匹配,当待检测软件的部分或全 部软件信息与某一个软件问题类别或某几个软件问题类别中的问题信息全部或部分相匹 配时,就能确定该待检测软件存在相应软件问题类别下对应的软件的"问题"。其中,匹配过 程即对待检测软件的检测过程。
[0041] 进一步,对于用户的终端设备上每个待检测软件检测,可以依次或同时将每个待 检测软件的软件信息在每个软件问题类别下与其中的问题信息进行匹配。如果一个或几个 待检测软件各自具有的部分或全部软件信息与一个软件问题类别下的问题信息能够匹配 上,就说明该一个或几个待检测软件存在该软件问题类别下对应的一个或多个软件问题。
[0042] 由此,避免了用户需要逐一检测软件,才会了解到软件所存在的问题。而同时对多 个待检测软件的软件信息做匹配,能更进一步提高检测效率。
[0043]另外,如果一待检测软件的全部软件信息与所有软件问题类别中的所有问题信息 进行匹配后,不存在与软件信息相匹配的问题信息,可以确定该待检测软件不存在问题。进 而,针对不存在问题的软件也会形成单独的无软件问题类别,以便可以让用户了解到当前 终端设备上的软件无问题、状态正常、安全、无需更新或补救等。
[0044] 下面以影音软件Move的检测为例来说明。用户U通过软件检测接口应用程序向服 务器发出检测影音软件Move的检测请求,服务器接收到用户U的检测请求之后,响应用户 U的请求,开始检测Move软件。服务器获取用户U的终端上的Move软件"Move"的软件信 息。Move的软件信息包括:版本号1. 23. 4. 0、大小27. 65M、适合安装系统Win8. 1/8/7/XP、 插件EX。接下来,假设有两个软件问题类别(类别I、类别II),服务器将Move软件的软件信 息与预设的两个软件问题类别的每个软件问题类别中的问题信息做匹配。其中,类别I是 "升级/更新软件",包括:问题(1-1)版本过低,对应相关的问题信息为Move软件的低版本 号和/或Move安装使用的时间(周期)、以及其他软件的低版本号和/或软件安装使用的时 间(周期)。类别II是"捆绑/携带软件安全威胁",包括:问题(II-1)软件捆绑,对应相关 的问题信息为Move的EX插件以及其他软件的插件;问题(II-1)软件携带,对应相关的问 题信息为一个或多个其他软件中的下载链接应用程序。服务器从用户U获取的Move的软 件信息中依次能与软件问题类别I、中记录的版本号"Move的1. 23. 4. 0"、软件问题类别II 中记录的"Move的插件EX"匹配上。
[0045] 如果根据步骤S102的匹配过程,出现软件信息与问题信息匹配上的情况,则进入 步骤S103。如果根据步骤S102的匹配过程,未出现软件信息与问题信息匹配上的情况, 即待检测软件的软件信息未匹配上任一所述软件问题类别中的任一问题信息,则进入步骤 S104。
[0046] 在步骤S103处,根据软件信息所匹配上的问题信息,确定待检测软件存在相应的 一种或多种软件问题类别下的一个或多个问题。
[0047] 如表1所示,当一待检测软件的软件信息为A1,匹配上软件问题类别I下的问题信 息A1时,S卩(A1=A1),则能够确定该待检测软件存在A1代表或指示的软件问题类别I下的 问题al。
[0048] 并且,如果一软件有多种软件信息与多种问题信息匹配上,则该软件可能存在多 个问题以待进行处理,并且,多个问题还可能属于不同的类别。
[0049] 如上述检测Move软件的例子,用户U的终端上的Move软件的软件信息"版本号: Move的1. 23. 4. 0"匹配上问题信息"版本号:Move的1. 23. 4. 0"、软件信息"Move插件EX" 匹配上问题信息"Move插件EX",则Move存在问题(1-1)软件更新升级的问题,即该软件 Move需要进行升级处理才可以正常使用、以及存在问题(II-1)软件捆绑的问题,S卩如不及 时处理,用户会因捆绑软件而受到其他陌生设备的监控,进而导致信息安全受到威胁。并 且,两个问题分属于软件问题类别I、II。
[0050] 其中,对于待检测软件的软件信息与每个软件问题类别中的问题信息进行匹配的 方式,可以用预设阈值或基础信息进一步调用来判断等,但本发明并不限于此。
[0051] 例如:待检测软件为某一浏览器软件,该浏览器的软件信息包括有基础信息"最新 版本为V123. 6"、"占用空间大小37. 23M"、"更新时间2014. 01. 01"、"适合安装系统微软系 列操作系统",该浏览器的软件信息还包括有使用信息"注册表循环调用"。
[0052] 现将该浏览器软件的上述软件信息逐一与预设的13类软件问题类别中的问
题信 息进行匹配。其中,预设的13类软件问题类别有:a)软件被捆绑安装,b)软件长期不使用, c)同类软件安装过多,d)软件运行后不清除临时文件,e)软件占用过多资源,f)软件在开 机时自动运行,g)缺少必备软件,h)缺少软件运行环境,i)未设置默认软件,j)未锁定默 认浏览器和主页,k)软件评分过低,1)软件运行时弹出广告,m)软件长期未更新。
[0053] 在逐一匹配过程中,该浏览器软件的软件信息与e)软件问题类别中所存储的该 浏览器占用空间大小37. 23M的问题信息相匹配,此时会将该浏览器认定为软件占用过多 资源类别e)中的软件问题,并记录在待展示区。
[0054] 继续匹配h) -m)的软件问题类别中的问题信息。当该浏览器软件的软件信息在与 j)未锁定默认浏览器和主页的软件问题类别中的问题信息进行匹配时,由该浏览器软件的 最新版本为V123. 6"、"更新时间2014. 01. 01"等基础信息去进一步调用或获取该浏览器软 件的使用信息如注册表调用信息,以便与j)类软件问题类别中的记录的存在错误的该浏览 器软件的注册表调用信息(即问题信息)做匹配,如果匹配上,则确定当前检测的该浏览器 软件存在未锁定状态问题,同时将j)类软件问题记录待展示区。
[0055] 确定了检测获得的问题以及相应的软件问题类别后,进入步骤S105。
[0056] 在步骤S104处,根据待检测软件的软件信息无相匹配的问题信息的情形,确定该 待检测软件不存在问题,并将不存在问题的软件进行汇总,以形成无软件问题类别。如果待 检测软件的所有软件信息都未匹配上任一软件问题类别中记录的问任一问题信息,确定待 检测的软件不存在问题。并且,将这些经过检测后,不存在问题的检测完成的待检测软件进 行汇总,归为一个统一的类别,即无软件问题类别,以便在检测结束后,集中展示给用户,使 用户可以快速清楚地了解到这些软件为无问题软件。
[0057] 例如,待检测软件为某办公软件A、聊天软件B,浏览器软件C进行检测,其检测结 果为:软件A的软件信息和软件C的软件信息,各自逐一与每一软件问题类别中的问题信息 进行匹配,都未匹配上,可以确定该两款软件无软件问题;而软件B的软件信息通过逐一与 每一软件问题类别中的问题信息进行匹配,匹配上"软件升级"的软件问题类别中的问题信 息,可以确定软件B存在"软件升级"问题。将软件A和软件C归为"无软件问题类别",而 软件B就归为匹配上的问题信息相应的软件升级的软件问题类别下。
[0058] 确定了检测获得的问题以及相应的软件问题类别后,进入步骤S105。
[0059] 在步骤S105处,将检测结果输出展示给用户。
[0060] 在一个实施例中,可以将已经确定为存在问题的软件中,属于相同软件问题类别 下的软件,汇总到一个展示条目下。一个软件问题类别对应到一个展示条目,每个展示条目 中展示对应的一种软件问题类别及属于该软件问题类别的一个或多个软件。另外,还可以 根据检测结果,将确定为不存在问题的软件,以无软件问题类别汇总到无软件问题类别的 展示条目下(即一个单独的展示条目下)。
[0061] 待检测软件经过匹配方式的检测、以及根据匹配结果确定是否存在问题、存在哪 种软件问题、属于哪个软件问题类别,最终获得检测结果,并将检测结果记录到展示区进行 展示,以提示用户所展示出的软件属于哪一类软件问题。其中,可以采用条目方式展示检测 结果,在每一个条目下,展示存在问题的软件。进一步,在每一个条目下,还可以对应展示存 在问题的软件设置处理功能,如设置"处理该软件问题"的按钮,以提示用户可以处理该软 件所存在的问题。
[0062] 如图5所示,每个软件问题类别的展示条目下,展示了经检测发现存在该类别下 的问题的各个软件,并在每个软件旁边,设置了与该有问题的软件相对应的修复方式:"卸 载"、"详情"等按钮,以提示用户针对该出现问题的软件可以进行"卸载"方式的处理或查看 详情方式的处理,等等。
[0063] 多种软件存在同一个软件问题类别下的问题,可以展示在一个展示条目下,而一 款软件经检测其存在多个软件问题类别下的问题,则可以依据其存在问题所属的多个软件 问题类别形成多个展示条目。所有经过检测不存在问题的软件则归为一类,放入一个无软 件问题类别的展示条目下予以输出展示给用户。
[0064] 展示检测结果时,除了极端情况即所有被检测软件都存在问题外,总会展示一个 无软件问题类别的展示条目(极端情况下可以展示该展示条目为"空")。
[0065] 下面结合图2描述关于本发明的检测方法中软件问题类别的建立过程的一个例 子,仅仅为一示例,不作为对本发明的其他实现方式的限制。
[0066] 参照图2,其中示出了根据本发明一实施例的预设软件问题类别的方法的流程图。
[0067] 在步骤S201处,预先获取软件的多种信息。
[0068] 在一个实施例中,可以是服务器获取一软件的一种或多种软件信息,如软件A的 软件信息A1、A2、A3、A4。其中,获取软件的信息的方式,可以是服务器预先通过用户或开发 者所提供软件日志中提取各个软件的各种软件信息,或者,服务器通过与客户端建立定时 提交软件日志等方式来收集软件日志(即,每一款软件在其安装文件夹内都会携带的日志 记录,它会始终保存于软件的安装文件夹内,该日志记录会记录软件从开发到安装,以及后 续被应用的所有信息,比如,版本号、占用空间大小、适合安装系统、插件信息等)。进而服务 器通过收集的多种软件的软件日志,以软件日志中软件的注册信息、运行状态等,可影响软 件运行/使用的相关信息为核心提取软件的软件信息。
[0069] 其中,所获取的多种信息,可以是预设时间段来获取某一时间段信息,例如,版本 号信息,需要多个时间段的版本号信息才可以准确地检测软件存在问题。对于软件问题类 别中的信息的获取方式,本发明并不局限于上述方法。
[0070] 每一种软件从安装到使用过程中的所有信息都会记录在软件日志中,并且该软件 日志会一直存储在用户所安装软件的安装文件内。具体地,每当用户对某一软件进行安装 或使用时,其软件的安装时间、安装组件的信息或插件信息、运行状态、运行时间等都会记 录在相应的软件日志中。由于软件日志会记录每一次用户使用该软件的情况,因此会存储 一部分重复信息,所以需要通过软件日志中软件的注册信息、运行状态等,可影响软件运行 的相关信息为核心提取软件信息。例如,针对软件版本号这个软件信息,只需要提取最近一 次版本号来判断该软件是否需要升级。
[0071] 由此,可以通过收集用户向服务器提出的对某一个或多个已安装或应用的软件进 行在线检测时,获取相关软件的软件日志,或者,通过软件安装文件夹中解析出相应的软件 日志。从而,可以从软件日志中获取多种软件各自的软件信息。
[0072] 在步骤S202处,将预先获取的软件的各种软件信息与服务器中所存储的该软件 的对应的各种软件信息进行匹配。
[0073] 在一个实施例中,服务器可以将获取的该软件的该一种或多种软件信息,与服务 器中存储的该软件的该一种或多种软件信息相应的一种或多种软件信息, 对应地进行 匹配,如将软件A的软件信息Al、A2、A3、A4与服务器中存储的该软件A的软件信息A1'、A2'、A3'、A4'--对应进行匹配,即A1与A1'做匹配、A2与A2'做匹配、A3与A3'做匹配、 A4与A4'做匹配。若匹配上即A1=A1',若未匹配上即A1关A1'。
[0074] 其中,服务器会存储所有软件的相关信息,并且会根据开发者所提供的软件日志 进行相应软件的软件信息更新。因此,可以将收集到的各种软件的软件信息与服务器中存 储的同一软件的软件信息进行匹配,以便从中预测出软件可能存在的各种问题。
[0075] 例如,预先获取的一软件S的软件信息为:版本号V2. 0,组件为Zl、Z2、ZB1,服务 器中存储的软件S的软件信息为:版本号V2. 2,组件为Z1、Z2Z、ZBD。通过将预先获取的该 软件的前述几个软件信息与服务器预先存储的该软件的前述几个软件信息进行匹配,可以 得出软件版本号和组件都不匹配,因此具有"版本号V2. 0"、"组件为Zl、Z2、ZB1"这两种软 件信息的该软件,可能存在需要更新或有恶意插件等问题。针对不匹配情况的处理,可以进 入步骤S203。
[0076] 在步骤S203处,根据预先获取的软件具有
的不能匹配上的软件信息,确定该软件 存在的一个或多个问题。
[0077] 在一个实施例中,如果预先获取的软件的一种或多种软件信息与服务器上存储的 同样的软件所具有的相应的一种或多种软件信息未能匹配上,可以根据该预先获取的软件 具有的该一种或多种软件信息来确定该软件存在一个或多个问题。
[0078] 该预先获取的软件具有的该一种或多种软件信息,可以作为与存在的一个或多个 问题相关的问题信息。如:软件信息A1与A1'不同,软件信息A2与A2'不同,软件信息A4 与A4'不同,软件信息A3=A3',即软件信息A1、A2、A4未匹配上,可以根据该软件信息A1确 定该软件A存在一个问题al,根据该软件信息A2确定该软件A存在一个问题a2,根据该软 件信息A2、A4确定该软件A存在一个问题a24,即软件A存在al、a2、a24三个问题,并且, 将软件信息A1作为对应问题al的问题信息A1、将软件信息A2作为对应问题a2的问题信 息A2,将软件信息A2、A4作为对应问题a24的问题信息A2、A4 (即两个软件信息A2、A4组 合确定问题a24,两个软件信息都是问题信息且同时存在表示软件还会出现问题a24)。
[0079] 如果都匹配上则表示该软件不存在问题。
[0080] 由此,当预先收集到各种软件的软件信息与服务器上存储的同样的软件的对应的 软件信息出现不匹配的情况时,可以将预先收集到的各种软件的不匹配的各种软件信息提 取出来,进行软件问题类别预测。
[0081] 承前述例子,预先获取的软件S与服务器存储的该软件S的版本号不匹配,服务器 上软件S的版本号V2. 2要高于预先获取的该软件S的版本号V2. 0,可以确定若用户的终端 上若有该软件S,可能会存在需要更新的问题(即低版本要升级或更新)。
[0082] 在步骤S204处,对软件存在的不同问题进行分类得到软件问题类别,并在软件问 题类别中记录与该类别下的一个或多个问题相关的问题信息。
[0083] 在一个实施例中,对由软件信息确定的一个或多个问题按照共性、共同特质(相同 的性质或特点)等进行分类,得到软件问题类别,并在每个软件问题类别中记录与该类别下 的一个或多个问题相关的问题信息。
[0084] 一种方式,可以将与服务器端所存储的各个软件的软件信息不同的这些预先获取 的软件的软件信息提取出来,并将提取出的这些软件信息进行汇总,以及将具有相同或相 似的性质或特点的问题以及相应的软件信息归为一个类别。如将问题al、a2、a24进行分 类:问题al分到一个类别即软件问题类别I,问题a2分到一个类别即软件问题类别II,问 题a24分到一个类别即软件问题类别IV;并将软件S的不能匹配上服务器存储的软件S的 几个软件信息Al、A2、A4提取出来做汇总,其中,在类别I中记录问题al相应的软件信息 A1即问题信息A1,在类别II中记录问题a2相应的问题信息A2,在类别IV中记录问题a24 相应的问题信息A2与A4,(A2&A4)例如表1所示:
[0085] 表 1
[0087] 其中,&2、13142、(:1、(32、(33、(112等是其他软件匹配后发现的问题而分类到相应的 类别,且记录了相应的软件信息即问题信息A2、Bl、B2、Cl、C2、C3、D1&D2 (D1与D2)。
[0088] 通过匹配、确定问题、做分类的过程,形成软件问题分类表(如表1所示),由此表, 可以预测软件可能会存在哪些问题。比如,将某用户的软件S1的版本号C1、插件EX等软件 信息与服务器端对应的该软件S1的版本号C1'、插件EX'不匹配,确定该软件存在升级、捆 绑等安全或自身缺陷的问题,将该软件S1的两个问题cl、ex分两类(升级类、广告插件类) 并记录问题信息C1、EX,可以预测其他用户的软件S1可能存在这两类问题。
[0089] 由该预测软件问题和对软件问题划分类别的方式,还可以得到诸如以下软件问题 类别:同类软件安装过多类别、软件运行后不清除临时文件类别、软件运行时占用过多资源 类别、软件在开机时自动运行类别、缺少必备软件、缺少软件运行环境类别、未设置默认软 件类别等其他软件问题类别、等等。
[0090] 由此,可以实时提示用户在软件出现问题之前就可以解决软件问题,避免了不必 要的损失。
[0091] 至此结合图1、图2描述了根据本发明的软件检测方法的一具体实施例的过程。根 据获取用户所请求检测软件的软件信息和预设的一个或多个软件问题类别中的信息进行 匹配以执行检测,从而根据匹配到对应的软件问题类别确定检测的软件所存的问题,有效 快速地检测出软件所存的问题。以及,根据检测结果进行有针对性的展示,可以使用户清楚 地知道软件所存的问题,并针对问题进行相应处理。
[0092] 与上述软件检测方法类似,本申请的实施例还提供相应的软件检测装置。
[0093] 参照图3,图3示出了根据本申请一个实施例的软件检测装置300的示意性结构框 图。该装置300包括:检测模块301、确定模块302、预置模块303、输出模块304。
[0094] 检测模块301,用于将待检测软件的软件信息与预设的一种或多种软件问题类 别中的问题信息进行匹配。进一步的,如果待检测软件的软件信息未匹配上任一软件问 题类别中的任一问题信息,则确定所述待检测软件不存在问题;将不存在问题的所述待 检测软件进行汇总,以形成无软件问题类别。其中,【具体实施方式】还可以参见步骤S501、 S101-S102。
[0095]确定模块302,用于如果待检测软件的软件信息匹配上一种或多种软件问题类别 中的问题信息,则确定所述待检测软件存在相应的一种或多种软件问题类别下的一个或多 个问题。其中,【具体实施方式】还可以参见步骤S502、S103-S104。
[0096]预置模块303,用于对软件存在的一个或多个问题进行分类而获得所述软件问题 类别,每种软件问题类别中包含与该类别下的一个或多个问题相关的问题信息。其中,具体 实施方式还可以参见步骤S201-S204。
[0097] 其中,预置模块303还包括:匹配子模块303-1,用于将预先获取的软件的一种 或多种软件信息与服务器中存储的所述软件的相应的软件信息进行匹配;确定子模块 303-2,用于如果一种或多种软件信息与存储的所述软件的相应的软件信息未匹配上,则根 据所述一种或多种软件信息确定所述软件存在的一个或多个问题,并将所述一种或多种软 件信息作为与所述一个或多个问题相关的问题信息;分类子模块303-3,用于对所述一个 或多个问题进行分类,得到软件问题类别,并在所述软件问题类别中记录与该类别下的一 个或多个问题相关的问题信息。
[0098] 输出模块304,用于将已经确定为存在问题的软件中属于相同软件问题类别的软 件,汇总到一个展示条目下;其中,一种软件问题类别对应到一个展示条目,每个展示条目 中展示对应的一种软件问题类别及属于该软件问题类别的一个或多个软件。进一步的,其 还用于根据检测结果确定为不存在问题的软件,以无软件问题类别汇总到无软件问题类别 的展示条目下。其中,【具体实施方式】还可以参见步骤S105。
[0099]在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。 各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求 的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种 编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发 明的最佳实施方式。
[0100] 在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施 例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构 和技术,以便不模糊对本说明书的理解。
[0101] 类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在 上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施 例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保 护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面 的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此, 遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方
式】,其中每个权利要求本身 都作为本发明的单独实施例。
[0102] 本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地 改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单 元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或 子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任 何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的 任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的 权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来 代替。
[0103] 此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例 中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的 范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任 意之一都可以以任意的组合方式来使用。
[0104] 本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行 的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用 微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的拦截应用程序中的植入信 息的设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里 所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产 品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个 信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任 何其他形式提供。
[0105] 应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领 域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中, 不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词"包含"不排除存在 未列在权利要求中的元件或步骤。位于元件之前的单词"一"或"一个"不排除存在多个这 样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来 实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件 项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为 名称。
[0106] 本申请可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环 境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和 /或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、 手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型 计算机系统大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
[0107] 计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程 序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数 据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可 以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程 处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程 计算系统存储介质上。
【主权项】
1. 一种软件检测方法,其中,包括: 将待检测软件的软件信息与预设的一种或多种软件问题类别中的问题信息进行匹配; 其中,所述软件问题类别是对软件存在的一个或多个问题进行分类而获得,每种软件问题 类别中包含与该类别下的一个或多个问题相关的问题信息; 如果待检测软件的软件信息匹配上一种或多种软件问题类别中的问题信息,则确定所 述待检测软件存在相应的一种或多种软件问题类别下的一个或多个问题。2. 根据权利要求1所述的方法,其中,所述软件问题类别的获得包括步骤: 将预先获取的软件的一种或多种软件信息与服务器中存储的所述软件的相应的软件 信息进行匹配; 如果一种或多种软件信息与存储的所述软件的相应的软件信息未匹配上,则根据所述 一种或多种软件信息确定所述软件存在的一个或多个问题,并将所述一种或多种软件信息 作为与所述一个或多个问题相关的问题信息; 对所述一个或多个问题进行分类,得到软件问题类别,并在所述软件问题类别中记录 与该类别下的一个或多个问题相关的问题信息。3. 根据权利要求1或2所述的方法,其中,将待检测软件的软件信息与预设的一种或多 种软件问题类别中的问题信息进行匹配的步骤,还包括: 如果待检测软件的软件信息未匹配上任一所述软件问题类别中的任一问题信息,则确 定所述待检测软件不存在问题; 将不存在问题的所述待检测软件进行汇总,以形成无软件问题类别。4. 根据权利要求1-3之一所述的方法,其中,还包括: 将已经确定为存在问题的软件中属于相同软件问题类别的软件,汇总到一个展示条目 下;其中,一种软件问题类别对应到一个展示条目,每个展示条目中展示对应的一种软件问 题类别及属于该软件问题类别的一个或多个软件。5. 根据权利要求3或4所述的方法,其中,还包括: 根据检测结果确定为不存在问题的软件,以无软件问题类别汇总到无软件问题类别的 展示条目下。6. -种软件检测的装置,其中,包括: 检测模块,用于将待检测软件的软件信息与预设的一种或多种软件问题类别中的问题 信息进行匹配; 确定模块,用于如果待检测软件的软件信息匹配上一种或多种软件问题类别中的问题 信息,则确定所述待检测软件存在相应的一种或多种软件问题类别下的一个或多个问题; 预置模块,用于对软件存在的一个或多个问题进行分类而获得所述软件问题类别,每 种软件问题类别中包含与该类别下的一个或多个问题相关的问题信息。7. 根据权利要求6所述的装置,其中,预置模块还包括: 匹配子模块,用于将预先获取的软件的一种或多种软件信息与服务器中存储的所述软 件的相应的软件信息进行匹配; 确定子模块,用于如果一种或多种软件信息与存储的所述软件的相应的软件信息未匹 配上,则根据所述一种或多种软件信息确定所述软件存在的一个或多个问题,并将所述一 种或多种软件信息作为与所述一个或多个问题相关的问题信息; 分类子模块,用于对所述一个或多个问题进行分类,得到软件问题类别,并在所述软件 问题类别中记录与该类别下的一个或多个问题相关的问题信息。8. 根据权利要求6或7所述的装置,其中,检测模块,还包括: 如果待检测软件的软件信息未匹配上任一所述软件问题类别中的任一问题信息,则确 定所述待检测软件不存在问题; 将不存在问题的所述待检测软件进行汇总,以形成无软件问题类别。9. 根据权利要求6-8之一所述的装置,其中,还包括: 输出模块,用于将已经确定为存在问题的软件中属于相同软件问题类别的软件,汇总 到一个展示条目下;其中,一种软件问题类别对应到一个展示条目,每个展示条目中展示对 应的一种软件问题类别及属于该软件问题类别的一个或多个软件。10. 根据权利要求8或9所述的装置,其中,还包括: 输出模块,用于根据检测结果确定为不存在问题的软件,以无软件问题类别汇总到无 软件问题类别的展示条目下。
【专利摘要】本发明提供了一种软件检测方法及装置,包括:将待检测软件的软件信息与预设的一种或多种软件问题类别中的问题信息进行匹配;其中,软件问题类别是对软件存在的一个或多个问题进行分类而获得,每种软件问题类别中包含与该类别下的一个或多个问题相关的问题信息;如果待检测软件的软件信息匹配上一种或多种软件问题类别中的问题信息,则确定待检测软件存在相应的一种或多种软件问题类别下的一个或多个问题,从而能快速准确地得出软件存在的问题,而无需对每个软件所有支持文件或相应组件都具体做逐一扫描,进而能在软件运行前就能即能迅速地发现问题,保障用户软件的安全,并减轻用户终端的系统压力,以及提升用户体验。
【IPC分类】G06F21/51
【公开号】CN104899505
【申请号】CN201410083400
【发明人】张露, 张皓秋, 陈曦, 刘义平
【申请人】北京奇虎科技有限公司, 奇智软件(北京)有限公司
【公开日】2015年9月9日
【申请日】2014年3月7日
【公告号】WO2015131643A1