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

一种软件安装包检测方法和装置

文献发布时间:2023-06-19 10:54:12


一种软件安装包检测方法和装置

技术领域

本申请涉及通信技术领域,具体涉及一种软件安装包检测方法和装置。

背景技术

在软件安装包下载过程中,可能会被运营商、终端厂商、或黑客等第三方,通过拦截、劫持、或修改文件等方式,对软件安装包进行洗包(即篡改),使得实际下载到的软件安装包被替换或者篡改为第三方的软件安装包,而无法下载到原本预期的软件安装包,因此,为了减少下载到的被洗包的软件安装包风险,在软件安装包下载过程中一般会对软件安装包进行检测。

目前,对软件安装包进行检测的方式,通常是在对软件安装包下载完成后,通过消息摘要算法(MD5 Message-Digest Algorithm,MD5)计算下载得到的软件安装包对应的MD5值,然后将计算得到的MD5值和软件安装包中携带的MD5值进行比较,以校验下载到的软件安装包是否是预期的软件安装包,若计算得到的MD5值和软件安装包中携带的MD5值不一致,则认为是软件安装包有被篡改。

一方面,由于需要在软件安装包下载完之后才能判断是否被洗包,而软件安装包往往文件大小都比较大,在用户花费长时间下载完成之后才校验发现安装包已经被洗包,下载的不是官方渠道的软件安装包,甚至不是一个可安装的软件安装包,将极大影响下载转化率。另一方面,由于软件安装包(例如游戏安装包)普遍较大,全量计算MD5值的耗时较长,根据不同终端(例如手机)性能,耗时可能较长。并在MD5值校验通过确认没有被洗包之后才能拉起安装,这样会继续延长用户的等待时间,大文件的计算处理不当还容易导致终端卡顿。再一方面,由于软件安装包下载不完整也可能导致MD5值不一致,因此通过校验MD5值的方式无法区分是否是因为洗包引起的文件变化还是下载不完整引起的文件变化,也无法得到具体的洗包信息去做进一步的处理等,导致对软件安装包的检测结果不准确。

发明内容

本申请实施例提供一种软件安装包检测方法和装置,可以提高对软件安装包检测准确性和效率。

为解决上述技术问题,本申请实施例提供以下技术方案:

本申请实施例提供了一种软件安装包检测方法,包括:

获取软件安装包下载参考信息,所述软件安装包下载参考信息包括安装包数据量、安装包标识以及下载渠道信息;

响应软件安装包下载指令,与服务器建立下载链接,并基于所述下载链接获取当前待下载软件安装包的实际安装包数据量;

当所述实际安装包数据量与所述安装包数据量匹配时,从所述服务器上下载当前待下载软件安装包,得到目标软件安装包;

从所述目标软件安装包中提取实际安装包标识以及实际下载渠道信息;

当所述实际安装包标识与所述安装包标识不匹配,或所述实际下载渠道信息与所述下载渠道信息不匹配时,确定所述目标软件安装包为异常安装包。

根据本申请的一个方面,还提供了一种软件安装包检测装置,包括:

第一获取单元,用于获取软件安装包下载参考信息,所述软件安装包下载参考信息包括安装包数据量、安装包标识以及下载渠道信息;

第二获取单元,用于响应软件安装包下载指令,与服务器建立下载链接,并基于所述下载链接获取当前待下载软件安装包的实际安装包数据量;

下载单元,用于当所述实际安装包数据量与所述安装包数据量匹配时,从所述服务器上下载当前待下载软件安装包,得到目标软件安装包;

提取单元,用于从所述目标软件安装包中提取实际安装包标识以及实际下载渠道信息;

确定单元,用于当所述实际安装包标识与所述安装包标识不匹配,或所述实际下载渠道信息与所述下载渠道信息不匹配时,确定所述目标软件安装包为异常安装包。

根据本申请的一个方面,还提供了一种计算机设备,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时执行本申请实施例提供的任一种软件安装包检测方法。

根据本申请的一个方面,还提供了一种存储介质,所述存储介质用于存储计算机程序,所述计算机程序被处理器加载,以执行本申请实施例提供的任一种软件安装包检测方法。

本申请实施例可以获取软件安装包下载参考信息,该软件安装包下载参考信息可以包括安装包数据量、安装包标识以及下载渠道信息;以及响应软件安装包下载指令,与服务器建立下载链接,并基于下载链接获取当前待下载软件安装包的实际安装包数据量。当实际安装包数据量与安装包数据量匹配时,可以从服务器上下载当前待下载软件安装包,得到目标软件安装包,然后可以从目标软件安装包中提取实际安装包标识以及实际下载渠道信息。当实际安装包标识与安装包标识不匹配,或实际下载渠道信息与下载渠道信息不匹配时,可以确定目标软件安装包为异常安装包。该方案通过在软件安装包下载之前,将实际安装包数据量与安装包数据量进行比较,以对安装包数据量进行验证,若实际安装包数据量与安装包数据量匹配,则验证通过,然后在软件安装包下载完成之后,将实际安装包标识与安装包标识进行比较,以及将实际下载渠道信息与下载渠道信息进行比较等,以对安装包标识和下载渠道信息进行验证,若验证不通过则确定下载得到的目标软件安装包异常,而不需要计算MD5值进行验证,提高了对软件安装包检测准确性和效率。

附图说明

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

图1是本申请实施例提供的软件安装包检测方法应用的场景示意图;

图2是本申请实施例提供的软件安装包检测方法的流程示意图;

图3是本申请实施例提供的下载界面显示的示意图;

图4是本申请实施例提供的实际安装包数据量与安装包数据量不匹配时输出提示信息的示意图;

图5是本申请实施例提供的实际安装包标识与安装包标识不匹配或实际下载渠道信息与下载渠道信息不匹配时输出提示信息的示意图;

图6是本申请实施例提供的下载网络切换信息显示的示意图;

图7是本申请实施例提供的下载提示信息显示的示意图;

图8是本申请实施例提供的软件安装包检测方法的另一流程示意图;

图9是本申请实施例提供的软件安装包检测装置的示意图;

图10是本申请实施例提供的计算机设备的结构示意图。

具体实施方式

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

本申请实施例提供一种软件安装包检测方法和装置。

请参阅图1,图1为本申请实施例所提供的软件安装包检测方法应用的场景示意图,该软件安装包检测方法应用可以包括软件安装包检测装置,该软件安装包检测装置具体可以集成在终端10中,该终端10可以是手机、平板电脑、笔记本电脑、台式电脑、或者可穿戴设备等。终端10与服务器20之间可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。该服务器20可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDeliveryNetwork,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器,但并不局限于此。

其中,终端10可以用于获取软件安装包下载参考信息,该软件安装包下载参考信息可以包括安装包数据量、安装包标识以及下载渠道信息;以及响应软件安装包下载指令,与服务器20建立下载链接,并基于下载链接获取当前待下载软件安装包的实际安装包数据量。当实际安装包数据量与安装包数据量匹配时,可以从服务器20上下载当前待下载软件安装包,得到目标软件安装包,然后可以从目标软件安装包中提取实际安装包标识以及实际下载渠道信息。当实际安装包标识与安装包标识不匹配,或实际下载渠道信息与下载渠道信息不匹配时,可以确定目标软件安装包为异常安装包。该方案通过在软件安装包下载之前,将实际安装包数据量与安装包数据量进行比较,以对安装包数据量进行验证,若实际安装包数据量与安装包数据量匹配,则验证通过,然后在软件安装包下载完成之后,将实际安装包标识与安装包标识进行比较,以及将实际下载渠道信息与下载渠道信息进行比较等,以对安装包标识和下载渠道信息进行验证,若实际安装包标识与安装包标识不匹配或者实际下载渠道信息与下载渠道信息不匹配,则验证不通过,此时可以确定下载得到的目标软件安装包异常,而不需要计算MD5值进行验证,提高了对软件安装包检测准确性和效率。

需要说明的是,图1所示的软件安装包检测方法应用的场景示意图仅仅是一个示例,本申请实施例描述的软件安装包检测方法应用以及场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着软件安装包检测方法应用的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。

以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。

在本实施例中,将从软件安装包检测装置的角度进行描述,该软件安装包检测装置具体可以集成在终端等计算机设备中。

请参阅图2,图2是本申请一实施例提供的软件安装包检测方法的流程示意图。该软件安装包检测方法可以包括:

S101、获取软件安装包下载参考信息,软件安装包下载参考信息包括安装包数据量、安装包标识以及下载渠道信息。

其中,软件安装包可以是应用程序的安装文件,例如,游戏安装文件或即时通信安装文件等,软件安装包的类型和文件格式等可以根据实际需要进行灵活设置,例如,软件安装包在安卓系统上可以是.apk格式的文件。

终端可以向服务器请求以获取软件安装包下载参考信息,或者终端可以从预设数据库中获取软件安装包下载参考信息,或者终端通过软件发行渠道拉取某款软件安装包的下载地址时,会同时拉取到该软件安装包的文件大小、软件安装包的包名、软件安装包的下载渠道信息等软件安装包下载参考信息,当然,软件安装包下载参考信息的获取方式还可以根据实际需要进行灵活设置。

在一实施方式中,获取软件安装包下载参考信息可以包括:响应下载界面显示指令,向服务器发送信息获取请求;接收服务器基于信息获取请求返回的软件安装包下载参考信息,并在下载界面内显示下载参考信息。

为了提高软件安装包下载参考信息获取的便捷性和灵活性,当终端需要进入下载界面时,可以接收用户输入的下载界面显示指令,然后响应下载界面显示指令,以生成信息获取请求,此时可以向服务器发送信息获取请求。终端可以接收服务器基于信息获取请求返回的软件安装包下载参考信息以及显示下载界面所需的其他信息等,终端可以在下载界面内显示下载参考信息,以及其他信息等。

其中,软件安装包下载参考信息可以包括安装包数据量、安装包标识以及下载渠道信息等,安装包数据量、安装包标识以及下载渠道信息等均为软件安装包真实的安装包数据量、真实的安装包标识以及真实的下载渠道信息等。安装包数据量可以是软件安装包的文件大小。安装包标识可以是软件安装包的包名(packageName)或编号等,用于唯一识别软件安装包,例如,安装包的包名可以是安装包对应的唯一的名称,由于终端上相同包名的软件只能安装一个,所以包名可以用来区分不用软件的唯一标识。下载渠道信息可以是渠道号,用于标识提供软件安装包的提供方,例如,在软件安装包下载过程中,每个下载渠道一般会分配独立的渠道号,可以写在安装包里面,用于区分软件安装包是哪个下载渠道带来的,也是软件安装包下载中决定提供方来源和软件分成的重要标志。例如,如图3所示,软件安装包的下载界面内可以显示软件安装包的包名、文件大小以及下载渠道信息等信息。

S102、响应软件安装包下载指令,与服务器建立下载链接,并基于下载链接获取当前待下载软件安装包的实际安装包数据量。

例如,如图3所示,终端可以接收用户在下载界面内输入的针对“下载”按钮的点击操作,生成软件安装包下载指令。然后终端可以响应软件安装包下载指令,与服务器建立下载链接,并基于下载链接获取当前待下载软件安装包的实际安装包数据量(例如软件安装包的文件大小)。

在一实施方式中,基于下载链接获取当前待下载软件安装包的实际安装包数据量可以包括:查询下载链接的请求头信息中的文件长度存储字段;从文件长度存储字段中提取文件长度,基于文件长度确定当前待下载软件安装包的实际安装包数据量。

例如,终端可以查询下载链接的请求头信息(例如超文本传输协议(HyperTextTransfer Protocol,HTTP)下载请求的请求头(http header)信息)中的文件长度存储字段(例如ContentLength字段),从文件长度存储字段中提取文件长度,可以将文件长度作为当前待下载软件安装包的实际文件大小(即实际安装包数据量)。而不需要额外计算,不增加耗时,提高了实际安装包数据量获取的效率和便捷性。

S103、当实际安装包数据量与安装包数据量匹配时,从服务器上下载当前待下载软件安装包,得到目标软件安装包。

在得到当前待下载软件安装包的实际安装包数据量后,可以将实际安装包数据量与软件安装包下载参考信息中的安装包数据量进行比较,以对实际安装包数据量进行验证。当实际安装包数据量与安装包数据量匹配(即一致)时,说明对实际安装包数据量验证通过,此时终端可以基于下载链接中携带的下载地址从服务器上下载当前待下载软件安装包,得到目标软件安装包。当实际安装包数据量与安装包数据量不匹配(即不一致)时,说明对实际安装包数据量验证不通过,此时终端可以不下载当前待下载软件安装包,可以输出验证不通过且拒绝下载的相关提示信息,减少了下载等待时间和卡顿等。实现了在下载当前待下载软件安装包之前,可以对实际安装包数据量(例如文件大小)进行快速验证,从而可以快速判断当前待下载软件安装包是否有篡改,如果当前待下载软件安装包有被篡改或者替换等,很大概率会导致当前待下载软件安装包的文件大小发生变化,如果文件大小不一致,则认为被洗包,并取消下载。例如,如图4所示,当实际安装包数据量与安装包数据量不匹配时,终端还可以输出“您下载的XXX软件安装包经过快速检测,发现已经被厂商洗包变成第三方有害软件,即将为您取消下载”等提示信息,以告知用户当前待下载软件安装包可能存在风险,还可以显示“取消”和“确定”等按钮,以供用户选择继续下载或取消下载等。

在一实施方式中,软件安装包检测方法还可以包括:当实际安装包数据量与安装包数据量不匹配时,确定当前待下载软件安装包为异常安装包,基于下载链接获取当前待下载软件安装包的实际下载地址,以基于实际下载地址分析异常原因。

具体地,当实际安装包数据量与安装包数据量不匹配时,确定当前待下载软件安装包为异常安装包,可以基于下载链接获取当前待下载软件安装包的实际下载地址,此时终端可以向服务器上报实际下载地址,其中,实际下载地址可以在一定程度上分析出是被哪个第三方洗包了,因此,可以基于实际下载地址分析异常原因,例如被第三方A洗包了,当然,还可以分析其他的异常原因,具体内容在此处不做限定,提高了异常原因分析的便捷性和可靠性。其中,洗包可以是指在软件安装包下载过程中,可能会被运营商、终端厂商、或黑客等合法或者不合法的第三方,通过拦截、劫持、或修改文件等方式,对软件安装包进行篡改,使得实际下载到的软件安装包被替换或者篡改为第三方的软件安装包,无法下载到原本预期的软件安装包的行为。例如由于游戏分发涉及有游戏收入的分成,所以第三方热衷于对正在下载的游戏安装包进行洗包。

S104、从目标软件安装包中提取实际安装包标识以及实际下载渠道信息。

例如,在下载得到目标软件安装包后,终端可以通过软件安装包解析接口直接读取目标软件安装包中的实际安装包标识,以及通过渠道检测接口读取目标软件安装包中的实际下载渠道信息。例如,对于每个游戏的游戏安装包,都会有该游戏的唯一包名(packageName),该包名可以是一段字符串,比如XXX游戏的包名可以是com.tencent.tgpxxxx,可以用于区分不同游戏软件的唯一标志,通过终端系统提供的查询方法可以快速查询到。用于分发的游戏安装包,会在游戏安装包特定位置写入渠道号,用于安装之后判断下载来源,进而决定游戏付费收入分成,游戏发行方获知渠道号写入规则,可以快速读取出游戏安装包中的渠道号。

在一实施方式中,从目标软件安装包中提取实际安装包标识以及实际下载渠道信息可以包括:对目标软件安装包进行解析,得到解析后的软件安装文件;从软件安装文件中第一位置提取实际安装包标识,以及从软件安装文件中第二位置提取实际下载渠道信息。

在下载得到目标软件安装包后,终端可以从目标软件安装包中提取实际安装包标识以及实际下载渠道信息,例如,可以对.apk格式的目标软件安装包进行解析,得到解析后的软件安装文件,从软件安装文件中第一位置提取实际安装包标识,以及从软件安装文件中第二位置提取实际下载渠道信息,其中,第一位置和第二位置可以根据实际需要进行灵活设置。实现了在目标软件安装包下载完成之后,可以直接进行实际安装包标识(例如包名)读取和实际下载渠道信息(例如下载渠道号)读取,无需进行整个目标软件安装包的文件计算,只需查找文件的指定位置,其耗时非常短(例如在毫秒级),提高了实际安装包标识以及实际下载渠道信息获取的效率和便捷性。

然后,可以将实际安装包标识与安装包标识进行比较,以及将实际下载渠道信息与下载渠道信息进行比较,以判断实际安装包标识与安装包标识是否匹配,或实际下载渠道信息与下载渠道信息是否匹配。其中,实际安装包标识与安装包标识的比较、实际下载渠道信息与下载渠道信息的比较可以同时进行,或者先将实际安装包标识与安装包标识进行比较,再将实际下载渠道信息与下载渠道信息进行比较;或者,先将实际下载渠道信息与下载渠道信息进行比较,后将实际安装包标识与安装包标识进行比较等,具体在此处不做限定。

S105、当实际安装包标识与安装包标识不匹配,或实际下载渠道信息与下载渠道信息不匹配时,确定目标软件安装包为异常安装包。

当实际安装包标识与安装包标识不匹配,或实际下载渠道信息与下载渠道信息不匹配时,确定目标软件安装包为异常安装包,例如发生了洗包行为,确定本次下载无效,可以触发异常上报和重试等,此时,如图5所示,终端还可以输出“您下载的XXX软件安装包经过快速检测,发现已经被厂商洗包变成第三方有害软件,即将为您删除并重新下载”等提示信息,以在下载完成的第一时间告知用户目标软件安装包可能存在风险,还可以显示“取消”和“确定”等按钮,以供用户选择继续使用或确定删除等。当实际安装包标识与安装包标识匹配,且实际下载渠道信息与下载渠道信息匹配时,确定目标软件安装包为正常安装包。实现了快速判断软件安装包是否被洗包,例如在软件安装包下载的过程中,经常会遇到厂商拦截、运营商劫持、或者第三方篡改替换软件安装包等洗包行为,针对洗包行为,本实施例提供的软件安装包检测方案可以在软件安装包下载过程中快速判断是否被洗包。

在一实施方式中,软件安装包检测方法还可以包括:当实际安装包标识与安装包标识不匹配时,基于实际安装包标识分析异常原因;或者,当实际下载渠道信息与下载渠道信息不匹配时,基于实际下载渠道信息分析异常原因。

为了方便后续对下载得到的目标软件安装包异常原因的分析,当实际安装包标识与安装包标识不匹配时,可以基于实际安装包标识分析异常原因,例如,可以基于实际安装包的包名确定目标软件安装包具体被洗包成了哪个包名,由于软件(即应用程序)和包名是一一对应的,因此可以进而匹配出被洗包成了哪个软件,从而还可以将实际包名上报至服务器进行统计分析。当实际下载渠道信息与下载渠道信息不匹配时,可以基于实际下载渠道信息分析异常原因,例如,可以基于实际下载渠道信息确定被哪个渠道洗包,比如A俱乐部渠道被洗包成某手机厂商应用市场渠道。

在一实施方式中,当实际安装包标识与安装包标识不匹配,或实际下载渠道信息与下载渠道信息不匹配时,确定目标软件安装包为异常安装包可以包括:将实际安装包标识与安装包标识进行比较;当实际安装包标识与安装包标识匹配时,将实际下载渠道信息与下载渠道信息进行比较;当实际下载渠道信息与下载渠道信息不匹配时,确定目标软件安装包为异常安装包。

为了提高对软件安装包检测的准确性,可以先进行安装包标识比较,后进行下载渠道信息比较,例如,在得到实际安装包标识后,首先将实际安装包标识与安装包标识进行比较,当实际安装包标识与安装包标识不匹配时,可以确定目标软件安装包为异常安装包;当实际安装包标识与安装包标识匹配时,进一步将实际下载渠道信息与下载渠道信息进行比较,当实际下载渠道信息与下载渠道信息不匹配时,确定目标软件安装包为异常安装包;当实际下载渠道信息与下载渠道信息匹配时,说明正确下载了软件安装包,确定目标软件安装包为正常安装包。实现了快速查找和比对软件安装包的关键信息进行洗包判断,避免了全量校验文件MD5值的耗时操作,大大提高了软件安装包下载过程中的检测效率,提高了用户体验。

需要说明的是,对软件安装包检测方式,除了通过安装包数据量(例如文件大小)、安装包标识(例如包名)、以及下载渠道信息进行检测之外,还可以在软件安装包中设置标志位,在标志位中写入其他信息,以便在软件安装包在下载完成后可以从软件安装包中快速读取出标志位对应的信息进行验证,同样可以提高对软件安装包检测的效率和准确性。

在一实施方式中,确定目标软件安装包为异常安装包之后,软件安装包检测方法还可以包括:将目标软件安装包删除,并重新下载软件安装包,以及对重新下载的软件安装包进行检测。

在确定目标软件安装包为异常安装包后,为了避免对异常目标软件安装包进行安装带来的风险,以及节省终端的存储空间,可以将目标软件安装包删除,为了可以下载得到正确的软件安装包,可以重新下载软件安装包,以及按照上述检测方式对重新下载的软件安装包进行检测,例如,可以包括安装包数据量、安装包标识、以及下载渠道信息等信息的检测。

在一实施方式中,重新下载软件安装包可以包括:显示下载网络切换信息;当基于下载网络切换信息接收到用户输入的确认指令时,对当前的下载网络进行切换,并基于切换后的下载网络重新下载软件安装包。

为了提高重新下载得到正确软件安装包的准确性和便捷性,终端可以切换网络重新下载软件安装包,例如,如图6所示,当需要重新下载软件安装包时,终端可以显示下载网络切换信息:“已为您删除异常软件安装包,是否将当前的WIFI网络切换为4G网络重新下载软件安装包?”,该下载网络切换信息的具体内容还可以根据实际需要进行灵活设置。终端还可以显示“取消”和“确定”等按钮,以供用户选择切换下载网络或不切换下载网络等。当基于下载网络切换信息接收到用户输入的确认指令(例如点击“确定”按钮)时,对当前的下载网络进行切换,例如将当前的WIFI网络切换为4G网络,并基于切换后的下载网络(例如4G网络)重新下载软件安装包。

在一实施方式中,重新下载软件安装包可以包括:显示下载提示信息,下载提示信息用于指示用户通过目标终端下载软件安装包;从目标终端上获取已下载的软件安装包。

为了提高重新下载得到正确软件安装包的可靠性和灵活性,可以通过目标终端重新下载软件安装包,例如,如图7所示,当需要重新下载软件安装包时,终端可以显示下载提示信息:“已为您删除异常软件安装包,为了下载到正确软件安装包,您可以先在电脑上下载软件安装包,在拷贝到手机上安装”,该下载提示信息的具体内容还可以根据实际需要进行灵活设置。该下载提示信息可以用于指示用户通过目标终端(例如电脑)下载软件安装包,使得终端可以从目标终端上获取已下载的软件安装包。

本申请实施例可以获取软件安装包下载参考信息,该软件安装包下载参考信息可以包括安装包数据量、安装包标识以及下载渠道信息;以及响应软件安装包下载指令,与服务器建立下载链接,并基于下载链接获取当前待下载软件安装包的实际安装包数据量。当实际安装包数据量与安装包数据量匹配时,可以从服务器上下载当前待下载软件安装包,得到目标软件安装包,然后可以从目标软件安装包中提取实际安装包标识以及实际下载渠道信息。当实际安装包标识与安装包标识不匹配,或实际下载渠道信息与下载渠道信息不匹配时,可以确定目标软件安装包为异常安装包。该方案通过在软件安装包下载之前,将实际安装包数据量与安装包数据量进行比较,以对安装包数据量进行验证,若实际安装包数据量与安装包数据量匹配,则验证通过,然后在软件安装包下载完成之后,将实际安装包标识与安装包标识进行比较,以及将实际下载渠道信息与下载渠道信息进行比较等,以对安装包标识和下载渠道信息进行验证,若验证不通过则确定下载得到的目标软件安装包异常,而不需要计算MD5值进行验证,提高了对软件安装包检测准确性和效率。

根据上述实施例所描述的方法,以下将举例作进一步详细说明。

本实施例以软件安装包检测装置集成在终端为例,以下将以软件安装包为游戏安装包、安装包数据量为文件大小、安装包标识为包名、以及下载渠道信息为渠道号为例进行详细说明,请参阅图8,图8为本申请实施例提供的软件安装包检测方法的流程示意图。该方法流程可以包括:

S201、响应游戏下载界面显示指令,向服务器发送信息获取请求。

S202、接收服务器基于信息获取请求返回游戏安装包的文件大小、包名以及渠道号。

当终端需要进入游戏下载界面对游戏安装包进行下载时,终端可以接收用户输入的下载界面显示指令,然后响应下载界面显示指令,以生成信息获取请求,此时可以向服务器发送信息获取请求。终端可以接收服务器基于信息获取请求返回的游戏安装包的文件大小、包名以及渠道号等,还可以接收服务器返回的其他信息等,终端可以在下载界面内显示游戏安装包的文件大小、包名、渠道号以及其他信息等。

S203、响应游戏安装包下载指令,与服务器建立下载链接,并从下载链接的请求头信息中获取当前待下载游戏安装包的实际文件大小。

例如,终端可以接收用户在下载界面内输入的针对“下载”按钮的点击操作,生成游戏安装包下载指令。然后终端可以响应游戏安装包下载指令,与服务器建立下载链接,并基于下载链接获取当前待下载游戏安装包的文件大小。例如,终端可以查询下载链接的HTTP下载请求的请求头(http header)信息中的文件长度存储字段(例如ContentLength字段),从文件长度存储字段中提取当前待下载游戏安装包的实际文件大小,而不需要额外计算,不增加耗时,提高了实际文件大小获取的效率和便捷性。

S204、判断实际文件大小与文件大小是否匹配。

S205、当实际文件大小与文件大小不匹配时,取消下载。

S206、当实际文件大小与文件大小匹配时,从服务器上下载当前待下载游戏安装包,得到目标游戏安装包。

在得到当前待下载游戏安装包的实际文件大小后,可以将实际文件大小与文件大小进行比较,以判断实际文件大小与文件大小是否匹配。当实际文件大小与文件大小匹配(即一致)时,终端可以基于下载链接中携带的下载地址从服务器上下载当前待下载游戏安装包,得到目标游戏安装包。当实际文件大小与文件大小不匹配(即不一致)时,终端可以不下载当前待下载游戏安装包,即取消下载,可以输出取消下载的相关提示信息,减少了下载等待时间和卡顿等。实现了在下载当前待下载游戏安装包之前,可以对实际文件大小进行快速验证,从而可以快速判断当前待下载游戏安装包是否被洗包,如果当前待下载游戏安装包被洗包,则很大概率会导致当前待下载游戏安装包的文件大小发生变化,因此如果文件大小不一致,则认为被洗包,并取消下载。当实际文件大小与文件大小不匹配时,终端还可以输出当前待下载游戏安装包可能存在风险的提示信息,以告知用户当前待下载游戏安装包可能存在风险,以供用户选择继续下载或取消下载等。

S207、从目标游戏安装包中提取实际包名以及实际渠道号。

例如,在下载得到目标游戏安装包后,终端可以通过游戏安装包解析接口直接读取目标游戏安装包中的实际包名,以及通过渠道检测接口读取目标游戏安装包中的实际渠道号。例如,对于每个游戏的游戏安装包,都会有该游戏的唯一包名(packageName),该包名可以是一段字符串,比如XXX游戏的包名可以是com.tencent.tgpxxxx,可以用于区分不同游戏软件的唯一标志,通过终端系统提供的查询方法可以快速查询到。用于分发的游戏安装包,会在游戏安装包特定位置写入渠道号,用于安装之后判断下载来源,进而决定游戏付费收入分成,游戏发行方获知渠道号写入规则,可以快速读取出游戏安装包中的渠道号。实现了在目标游戏安装包下载完成之后,可以直接进行实际包名读取和实际渠道号读取,无需进行整个目标游戏安装包的文件计算,只需查找文件的指定位置,其耗时非常短(例如在毫秒级),提高了实际包名以及实际渠道号获取的效率和便捷性。

S208、判断实际包名与包名是否匹配。

S209、当实际包名与包名不匹配时,删除目标游戏安装包。

S210、当实际包名与包名匹配时,判断实际渠道号与渠道号是否匹配。

S211、当实际渠道号与渠道号不匹配时,确定目标游戏安装包为异常安装包,将目标游戏安装包删除。

S212、当实际渠道号与渠道号匹配时,确定目标游戏安装包为正常安装包,对目标游戏安装包进行安装。

例如,在得到实际包名后,终端可以首先将实际包名与包名进行比较,当实际包名与包名不匹配时,可以确定目标游戏安装包为异常安装包,并删除目标游戏安装包。当实际包名与包名匹配时,进一步将实际渠道号与渠道号进行比较,当实际渠道号与渠道号不匹配时,确定目标游戏安装包为异常安装包,并删除目标游戏安装包;当实际渠道号与渠道号匹配时,说明正确下载了游戏安装包,确定目标游戏安装包为正常安装包,并对目标游戏安装包进行安装。实现了快速查找和比对游戏安装包的关键信息进行洗包判断,避免了全量校验文件MD5值的耗时操作,大大提高了游戏安装包下载过程中的检测效率,提高了用户体验。

在确定目标游戏安装包为异常安装包后,为了避免对异常目标游戏安装包进行安装带来的风险,以及节省终端的存储空间,可以将目标游戏安装包删除,为了可以下载得到正确的游戏安装包,可以重新下载游戏安装包,以及按照上述检测方式对重新下载的游戏安装包进行检测,例如,可以包括文件大小、包名、以及渠道号等信息的检测。

在重新下载游戏安装包的过程中,终端可以切换网络重新下载游戏安装包,例如,终端可以显示下载网络切换信息:“已为您删除异常游戏安装包,是否将当前的WIFI网络切换为4G网络重新下载游戏安装包?”,终端还可以显示“取消”和“确定”等按钮,以供用户选择切换下载网络或不切换下载网络等。当基于下载网络切换信息接收到用户输入的确认指令(例如点击“确定”按钮)时,对当前的下载网络进行切换,例如将当前的WIFI网络切换为4G网络,并基于切换后的下载网络(例如4G网络)重新下载游戏安装包。又例如,当需要重新下载游戏安装包时,终端可以显示下载提示信息:“已为您删除异常游戏安装包,为了下载到正确游戏安装包,您可以先在电脑上下载游戏安装包,在拷贝到手机上安装”,该下载提示信息可以用于指示用户通过电脑或手机等其他终端下载游戏安装包,使得终端可以从其他终端上获取已下载的游戏安装包。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对游戏安装包检测方法的详细描述,此处不再赘述。

本申请实施例通过在游戏安装包下载之前,将实际文件大小与文件大小进行比较,以对文件大小进行验证,若实际文件大小与文件大小匹配,则验证通过,然后在游戏安装包下载完成之后,将实际包名与包名进行比较,以及将实际渠道号与渠道号进行比较等,以对包名和渠道号进行验证,若验证不通过则确定下载得到的目标游戏安装包异常,而不需要计算MD5值进行验证,提高了对游戏安装包检测准确性和效率。

为便于更好的实施本申请实施例提供的软件安装包检测方法,本申请实施例还提供一种基于上述软件安装包检测方法的装置。其中名词的含义与上述软件安装包检测方法中相同,具体实现细节可以参考方法实施例中的说明。

请参阅图9,图9为本申请实施例提供的软件安装包检测装置的结构示意图,其中该软件安装包检测装置可以包括第一获取单元301、第二获取单元302、下载单元303、提取单元304、以及确定单元305等。

其中,第一获取单元301,用于获取软件安装包下载参考信息,软件安装包下载参考信息包括安装包数据量、安装包标识以及下载渠道信息。

第二获取单元302,用于响应软件安装包下载指令,与服务器建立下载链接,并基于下载链接获取当前待下载软件安装包的实际安装包数据量。

下载单元303,用于当实际安装包数据量与安装包数据量匹配时,从服务器上下载当前待下载软件安装包,得到目标软件安装包。

提取单元304,用于从目标软件安装包中提取实际安装包标识以及实际下载渠道信息。

确定单元305,用于当实际安装包标识与安装包标识不匹配,或实际下载渠道信息与下载渠道信息不匹配时,确定目标软件安装包为异常安装包。

在一实施方式中,第二获取单元302具体可以用于:查询下载链接的请求头信息中的文件长度存储字段;从文件长度存储字段中提取文件长度,基于文件长度确定当前待下载软件安装包的实际安装包数据量。

在一实施方式中,提取单元304具体可以用于:对目标软件安装包进行解析,得到解析后的软件安装文件;从软件安装文件中第一位置提取实际安装包标识,以及从软件安装文件中第二位置提取实际下载渠道信息。

在一实施方式中,确定单元305具体可以用于:将实际安装包标识与安装包标识进行比较;当实际安装包标识与安装包标识匹配时,将实际下载渠道信息与下载渠道信息进行比较;当实际下载渠道信息与下载渠道信息不匹配时,确定目标软件安装包为异常安装包。

在一实施方式中,第一获取单元301具体可以用于:响应下载界面显示指令,向服务器发送信息获取请求;接收服务器基于信息获取请求返回的软件安装包下载参考信息,并在下载界面内显示下载参考信息。

在一实施方式中,软件安装包检测装置还可以包括:

处理单元,用于将目标软件安装包删除,并重新下载软件安装包,以及对重新下载的软件安装包进行检测。

在一实施方式中,处理单元具体可以用于:显示下载网络切换信息;当基于下载网络切换信息接收到用户输入的确认指令时,对当前的下载网络进行切换,并基于切换后的下载网络重新下载软件安装包。

在一实施方式中,处理单元具体可以用于:显示下载提示信息,下载提示信息用于指示用户通过目标终端下载软件安装包;从目标终端上获取已下载的软件安装包。

在一实施方式中,软件安装包检测装置还可以包括:

分析单元,用于当实际安装包数据量与安装包数据量不匹配时,确定当前待下载软件安装包为异常安装包,基于下载链接获取当前待下载软件安装包的实际下载地址,以基于实际下载地址分析异常原因;或者,当实际安装包标识与安装包标识不匹配时,基于实际安装包标识分析异常原因;或者,当实际下载渠道信息与下载渠道信息不匹配时,基于实际下载渠道信息分析异常原因。

本申请实施例可以由第一获取单元301获取软件安装包下载参考信息,该软件安装包下载参考信息可以包括安装包数据量、安装包标识以及下载渠道信息;以及由第二获取单元302响应软件安装包下载指令,与服务器建立下载链接,并基于下载链接获取当前待下载软件安装包的实际安装包数据量。当实际安装包数据量与安装包数据量匹配时,可以由下载单元303从服务器上下载当前待下载软件安装包,得到目标软件安装包,然后可以由提取单元304从目标软件安装包中提取实际安装包标识以及实际下载渠道信息。当实际安装包标识与安装包标识不匹配,或实际下载渠道信息与下载渠道信息不匹配时,可以由确定单元305确定目标软件安装包为异常安装包。该方案通过在软件安装包下载之前,将实际安装包数据量与安装包数据量进行比较,以对安装包数据量进行验证,若实际安装包数据量与安装包数据量匹配,则验证通过,然后在软件安装包下载完成之后,将实际安装包标识与安装包标识进行比较,以及将实际下载渠道信息与下载渠道信息进行比较等,以对安装包标识和下载渠道信息进行验证,若验证不通过则确定下载得到的目标软件安装包异常,而不需要计算MD5值进行验证,提高了对软件安装包检测准确性和效率。

本申请实施例还提供一种计算机设备,该计算机设备可以是终端,如图10所示,其示出了本申请实施例所涉及的计算机设备的结构示意图,具体来讲:

该计算机设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图10中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:

处理器401是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行计算机设备的各种功能和处理数据,从而对计算机设备进行整体监控。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。

存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。

计算机设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

该计算机设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。

尽管未示出,计算机设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,计算机设备中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:

获取软件安装包下载参考信息,软件安装包下载参考信息包括安装包数据量、安装包标识以及下载渠道信息;响应软件安装包下载指令,与服务器建立下载链接,并基于下载链接获取当前待下载软件安装包的实际安装包数据量;当实际安装包数据量与安装包数据量匹配时,从服务器上下载当前待下载软件安装包,得到目标软件安装包;从目标软件安装包中提取实际安装包标识以及实际下载渠道信息;当实际安装包标识与安装包标识不匹配,或实际下载渠道信息与下载渠道信息不匹配时,确定目标软件安装包为异常安装包。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对软件安装包检测方法的详细描述,此处不再赘述。

根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中各种可选实现方式中提供的方法。

本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过计算机指令来完成,或通过计算机指令控制相关的硬件来完成,该计算机指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。为此,本申请实施例提供一种存储介质,其中存储有计算机程序,计算机程序可以包括计算机指令,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种软件安装包检测方法。

以上各个操作的具体实施可参见前面的实施例,在此不再赘述。

其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。

由于该存储介质中所存储的指令,可以执行本申请实施例所提供的任一种软件安装包检测方法中的步骤,因此,可以实现本申请实施例所提供的任一种软件安装包检测方法所能实现的有益效果,详见前面的实施例,在此不再赘述。

以上对本申请实施例所提供的一种软件安装包检测方法和装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

相关技术
  • 一种软件安装包检测方法和装置
  • 软件安装包检测方法及装置
技术分类

06120112722314