CN113496012A - 一种应用安装包的二次打包检测方法及装置 - Google Patents

一种应用安装包的二次打包检测方法及装置 Download PDF

Info

Publication number
CN113496012A
CN113496012A CN202010260865.7A CN202010260865A CN113496012A CN 113496012 A CN113496012 A CN 113496012A CN 202010260865 A CN202010260865 A CN 202010260865A CN 113496012 A CN113496012 A CN 113496012A
Authority
CN
China
Prior art keywords
apk
target
distance
data
apks
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010260865.7A
Other languages
English (en)
Other versions
CN113496012B (zh
Inventor
阚志刚
龚伟炜
卢佐华
陈彪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Bangcle Technology Co ltd
Original Assignee
Beijing Bangcle Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Bangcle Technology Co ltd filed Critical Beijing Bangcle Technology Co ltd
Priority to CN202010260865.7A priority Critical patent/CN113496012B/zh
Publication of CN113496012A publication Critical patent/CN113496012A/zh
Application granted granted Critical
Publication of CN113496012B publication Critical patent/CN113496012B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种应用安装包的二次打包的检测方法、装置、电子设备以及计算机可读存储介质。该方法包括:通过预置探针软件开发工具包SDK采集不小于预设数量的移动终端上的目标应用安装包APK的APK数据;APK数据包括目标APK的APK编号和目标APK的电子签名MD5值;基于统计学算法,根据APK数据,对目标APK进行分类;根据分类结果,检测出被二次打包的目标APK。

Description

一种应用安装包的二次打包检测方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种应用安装包的二次打包检测方法、装置、电子设备以及计算机可读存储介质。
背景技术
随着互联网技术的快速发展,移动终端上的应用程序的种类和数量呈爆发式增长。与此同时,应用程序面临的安全威胁不断增多。
其中,移动终端上应用安装包(Android application package,APK)被非法者破解并二次打包是影响移动终端安全的一个重要方面。正版APK被破解并被二次打包之后,通常会被加入一些恶意代码,在移动终端安装被二次打包的APK后,植入的恶意代码可以盗取用户资金及敏感信息等,造成严重的安全隐患。
现有技术中,虽然可以使用安全加固的方法来降低APK被非法者破解并进行二次打包的风险,然而目前的安全加固方式不具备实时检测的功能,使得APK被破解后也无从知晓,安全隐患依然存在。另外,基于被二次打包后APK的MD5值会发生改变的特点,现有技术还可以通过判断待检测APK的MD5值与官方APK的基准MD5值是否一致的方式,检测二次打包的应用,但这种方式,需要预先存储官方APK的不同版本的基准MD5值,对于频繁迭代的应用,可能不能做到及时获取并存储官方APK的不同版本的基准MD5值,这也导致不能做到实时检测二次打包的应用。
发明内容
本说明书实施例提供一种应用程序的二次打包检测方法、装置、电子设备以及计算机可读存储介质,以解决现有技术中无法实时检测二次打包的应用程序的问题。
本说明书实施例采用下述技术方案:
一种应用程序的二次打包检测方法,包括:
通过预置探针软件开发工具包SDK采集不小于预设数量的移动终端上的目标应用安装包APK的APK数据;所述APK数据包括所述目标APK的APK编号和所述目标APK的电子签名MD5值;
基于统计学算法,根据所述APK数据,对所述目标APK进行分类;
根据分类结果,检测出被二次打包的目标APK。
一种应用程序的二次打包检测装置,包括:
采集模块,用于通过预置探针软件开发工具包SDK采集不小于预设数量的移动终端上的目标应用安装包APK的APK数据;所述APK数据包括所述目标APK的APK编号和所述目标APK的电子签名MD5值;
分类模块,用于基于统计学算法,根据所述APK数据,对所述目标APK进行分类;
检测模块,用于根据分类结果,检测出被二次打包的目标APK。
一种电子设备,包括:存储器、处理器及存储在所在存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现任一所述的应用安装包的二次打包检测方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现任一所述的应用安装包的二次打包检测方法的步骤。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
基于同一应用的不同版本APK的MD5值不同,同一应用的同一版本的APK的MD5值相同,且被二次打包后应用APK的MD5值会发生改变的特点,以及移动终端上安装的是二次打包应用的数量占比较低等基础,本说明书实施例通过预置的探针SDK可以实时采集应用程序的APK数据,APK数据包括APK版本号和MD5值,再通过统计学算法,对采集的APK数据,进行APK分类,由于移动终端上安装二次打包的应用数量比重较低,基于统计学算法,可以将分类结果中包含APK数量较少的一类分离出来,从而可以实现将采集的APK数据中是二次打包的应用程序检测出来,以实现对二次打包的APK的实时检测。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本说明书实施例提供的应用安装包的二次打包检测方法的流程示意图;
图2为本说明书实施例提供的应用安装包的二次打包检测装置的结构示意图;
图3为本说明书实施例提供的应用安装包的二次打包检测系统的结构示意图;
图4为本说明书实施例提供的电子设备结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
现有技术中,为了防止二次打包的应用造成安全隐患,可以使用安全加固的方法来降低APK被非法者破解并进行二次打包的风险,然而目前的安全加固方式不具备实时检测的功能,使得APK被破解后也无从知晓,安全隐患依然存在。
另外,基于被二次打包后APK的MD5值会发生改变的特点,现有技术还可以通过判断待检测APK的MD5值与官方APK的基准MD5值是否一致的方式,检测二次打包的应用,但这种方式,需要预先存储官方APK的不同版本的基准MD5值,对于频繁迭代的应用,可能不能做到及时获取并存储官方APK的不同版本的基准MD5值,这也导致不能做到实时检测二次打包的应用。
为了实现对二次打包应用的实时检测,研究人员发现,对于某一应用,统计到被二次打包并安装在用户的移动终端上的数量,占市场上安装该款应用的总数量的比例较低,约低于1%,也就是说,对于普通移动终端用户而言,安装的某款应用是二次打包应用的概率低于1%,基于该统计存在的前提下,本说明书实施例利用统计学的方法对APK进行分类识别,将占比较少的二次打包的应用检测出来,以实现对二次打包的应用程序的实时检测。
图1所示的是本说明书实施例提供的一种应用安装包的二次打包检测方法的流程示意图,通过该方法可以实现对二次打包的应用程序的实时检测。该方法的执行主体包括但不限于服务器、个人电脑、笔记本电脑、平板电脑、智能手机等可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备。其中,所述服务器可以是单个网络服务器或者多个网络服务器组成的服务器组或基于云计算(CloudComputing)的由大量计算机或网络服务器构成的云。本说明书实施例对该方式的执行主体不做限制,该方法可以包括下述步骤:
步骤11:通过预置探针SDK采集不小于预设数量的移动终端上的目标APK的APK数据。
这里的APK数据可以包括目标APK的APK编号和目标APK的MD5值。其中,MD5值可以是现有技术中通过MD5算法生成的应用安装包的电子签名。
在实际应用中,由于需要采集不小于预设数量的移动终端上的目标APK的APK数据,并将其中可能包含的二次打包的目标APK识别出来,这里的APK编号可以用于区分不同移动终端上的目标APK。相应的,由于采集到的不同移动终端上的目标APK的MD5值可能相同,APK编号可以对应区分不同移动终端上的目标APK的MD5值。
在实际应用中,预设数量可以根据实际需求设定,例如,可以设置为1000,对此本申请不做限制。可以理解的是,如上所述,本说明书实施例将统计学的方法应用到对二次打包的APK的检测,那么采集到的移动终端的目标APK的APK数据的数量越多,对目标APK的分类越准确,所以本说明书实施例采集不小于预设数量的移动终端上的目标APK的APK数据,从而以一定的数据量为基础实现对目标APK的识别分类。
这里的探针SDK可以用于采集目标APK的APK数据。在实际应用中,为了通过探针SDK采集目标APK的APK数据,可以预先将探针SDK植入移动终端的任一系统程序,和/或,将探针SDK植入移动终端的任一应用程序中。当移动终端的任一系统程序,和/或,任一应用程序中植入了探针SDK,该探针SDK可以采集该移动终端上安装的全部APK的APK数据,也即,可以采集到目标APK的APK数据。
在实际应用中,在被植入探针SDK的任一系统程序,和/或,被植入探针SDK的任一应用程序启动运行时,通过该探针SDK可以采集不小于预设数量的移动终端上的目标APK的APK数据。可以理解的是,该探针SDK可以随系统程序,和/或,应用程序的启动运动而同步运行,那么只要任一被植入探针SDK的系统程序,和/或,任一被植入探针SDK的应用程序启动运行,探针SDK即可执行采集移动终端上目标APK的APK数据,从而可以提高采集APK数据的效率,为实现实时检测二次打包的APK奠定基础。
在本说明书一个或多个实施例中,为了便于之后根据APK数据对目标APK进行分类,在通过探针SDK采集到移动终端上的目标APK的APK数据后,还可以包括:将采集到的APK编号和MD5值发送至云端;按照预设数据存储结构,将该采集到的APK编号和MD5值存储于云端中预先构建的数据库中。
在一种实施方式,为了便于对应存储APK编号和MD5值,该预设数据存储结构可以是“关键字-值(key-value)”类型的数据存储结构,具体来说,可以是key为APK编号,value为MD5值,例如:“APK0001:837373783”可以是key-value类型的数据存储结构的一种具体表现形式,其中,APK0001可以代表APK编号,837373783可以代表MD5值。当然,也可以采用其它类型的数据存储结构,对此本申请不做限制。
在实际应用中,将该采集到的APK编号和MD5值存储于云端中预先构建的数据库中,可以具体包括:将该采集到的APK编号和MD5值存储于云端中预先构建的数据库的表中。其中,该预先构建的数据库可以采用关系型数据库,或分布式数据库,对此本申请不做限制。
步骤12:基于统计学算法,根据APK数据,对目标APK进行分类。
如上所述,对于某一应用,统计到被二次打包并安装在用户的移动终端上的数量,占市场上安装该款应用的总数量的比例较低,相应的,可以理解的是,这里的不小于预设数量的目标APK中被二次打包的目标APK的数量可以较少并且由于同一版本的目标APK的MD5值相同,那么可以认为同一版本的目标APK可以分为一类,若某版本下目标APK被分出不止一类,也就是说,同一版本的目标APK包含不止一个MD5值,那么可以认为该不止一类中包含被二次打包的目标APK类。相应的,由于被二次打包的目标APK数量占比较小,可以认为包含目标APK数量少的目标APK类中所包含的目标APK,可以是被二次打包的目标APK。
基于上述理论,在本说明书一个或多个实施例中,基于统计学算法,根据APK数据,对目标APK进行分类,可以包括:
根据APK编号和MD5值,以及预先定义的距离度量方式,确定不小于预设数量的目标APK之间的距离;
基于距离,对目标APK进行分类。
在一种实施方式中,如公式1所示的可以是一种预先定义的距离度量方式,可以包括:定义MD5值相同的目标APK之间的距离为0;定义MD5值不同的目标APK之间的距离为1。根据该预先定义的距离度量方式,可以确定出不小于预设数量的目标APK之间的距离,以便于之后基于距离,对目标APK进行分类。
Figure BDA0002439250830000071
其中,dij为目标APKi和目标APKj之间的距离,MD5i表示APKi的MD5值,MD5j表示APKj的MD5值。
在本说明书实施例中,通过采用0和1的距离度量方式,可以简单确定出目标APK之间的距离,并减少计算机在执行根据距离对目标APK进行分类的计算量。
需要注意的是,上述距离度量方式是本说明书实施例提供的一种具体实施方式,并不代表本说明书实施例全部的实施方式。在实际应用中,还可以定义MD5值相同的目标APK之间的距离为2,定义MD5值不同的目标APK之间的距离为3等方式,对于采用什么数代表MD5值相同的目标APK之间的距离,以及对于采用什么数代表MD5值不同的目标APK之间的距离,本申请不做限制。
在实际应用中,考虑到基于矩阵的矩阵变换,可以较为容易的实现对目标APK的分类,在本说明书一个或多个实施例中,基于距离,对目标APK进行分类,可以具体包括:
根据距离,构建距离矩阵;
通过对距离矩阵进行矩阵变换,筛出多个子距离矩阵。
其中,多个子距离矩阵中的每个子距离矩阵分别对应一类目标APK,每个子距离矩阵中的距离可以为0
在实际应用中,如距离矩阵D所示的可以是根据距离,构建的距离矩阵。
Figure BDA0002439250830000081
为了便于理解如何通过对距离矩阵进行矩阵变换,筛除多个子距离矩阵,这里以5个目标APK的APK数据为例,做解释说明。
假设5个目标APK的APK编号可以分别为:APK1、APK2、APK3、APK4、APK5,分别对应的MD5值可以是111、222、111、333、222。
按照如公式1所示的距离度量方式,确定各目标APK之间的距离可以是:d11=0、d12=1、d13=0、d14=1、d15=1等以此类推。可以理解的是,dii=0,dij=dji,即,目标APKi和目标APKi之间的距离为0,目标APKi和目标APKj之间的距离,与目标APKj和目标APKi之间的距离相等。那么根据确定出来的距离,可以得到如距离矩阵D0所示的距离矩阵。
Figure BDA0002439250830000082
基于矩阵变换,将从左至右数的第二列和第三列进行交换,从上至下数的第二行和第三行进行交换,可以得到如距离矩阵D1所示的距离矩阵。
Figure BDA0002439250830000083
基于矩阵变换后的距离矩阵D1中,可以筛出子距离矩阵
Figure BDA0002439250830000091
Figure BDA0002439250830000092
则可以认为APK编号APK1和APK3,分别对应的目标APK可以是一类目标APK。
由于已经将APK编号APK1和APK3分别对应的目标APK划分为一类,可以将距离矩阵D1中下标包含1和3的矩阵元素筛除,得到如距离矩阵D2所示的距离矩阵。
Figure BDA0002439250830000093
那么再基于矩阵变换,将从左至右数的第二列和第三列进行交换,从上至下数的第二行和第三行进行交换,可以得到如距离矩阵D3所示的距离矩阵。
Figure BDA0002439250830000094
基于矩阵变换后的距离矩阵D3中,可以筛出子距离矩阵
Figure BDA0002439250830000095
Figure BDA0002439250830000096
则可以认为APK编号APK2和APK5,分别对应的目标APK可以是一类目标APK。则,APK编号APK4对应的目标APK可以是一类目标APK。
由此可以理解,多个子距离矩阵中的每个子距离矩阵分别对应一类目标APK,每个子距离矩阵中的距离可以为0。在实际应用中,根据采集到的APK数据所构建的距离矩阵,可以通过多次矩阵变换,筛出多个子距离矩阵。
在本说明书实施例中,可以将MD5值相同,即,APK之间的距离为0的目标APK划分为一类,使得可以不需要知道官方正版目标APK所有版本的基准MD5值,就可以实现将目标APK进行分类,从而进一步提高实时检测的能力。
步骤13:根据分类结果,检测出被二次打包的目标APK。
通过步骤12,可以实现将不小于预设数量的目标APK进行分类,即,得到分类结果。如上文所述,由于被二次打包的目标APK数量占目标APK总数量的比例较小,那么可以认为分类结果中包含目标APK数量较少的一类中的目标APK,可以是被二次打包的APK。例如,按照步骤12中的例子,可以认为APK编号APK4对应的目标APK是被二次打包的目标APK。
则在本说明书实施例中,根据分类结果,检测出被二次打包的目标APK,可以具体包括:确定出分类结果中,各类别中所包含的目标APK的数量不高于预设数量值的类别,该确定出的类别所对应的目标APK可以是被二次打包的目标APK。
可以理解的是,该预设数量值的具体数值,可以是根据被采集APK数据的目标APK的总数量确定,例如,如上文所述,对于某一应用,统计到被二次打包并安装在用户的移动终端上的数量,占市场上安装该款应用的总数量的比例较低,约低于1%,那么若采集了1000个目标APK的APK数据,则可以设定预设数量值为10,则在检测二次打包的目标APK时,可以将包含低于10个目标APK的类别,认为是被二次打包的类别,相应的,该类别下所包含的目标APK可以是被二次打包的目标APK。
在实际应用中,若检测出被二次打包的目标APK,还可以通过向移动终端用户发出警告、阻止安装程序执行等方式,告知用户要安装的目标APK可能是非正版官方APK,并存在安全风险,从而可以降低用户安装被二次打包的应用程序的概率。
在本说明书实施例中,通过预置的探针SDK可以实时采集应用程序的APK数据,APK数据包括APK版本号和MD5值,再通过统计学算法,对采集的APK数据,进行APK分类,由于移动终端上安装二次打包的应用数量比重较低,基于统计学算法,可以将分类结果中包含APK数量较少的一类分离出来,从而可以实现将采集的APK数据中是二次打包的应用程序检测出来,以实现对二次打包的APK的实时检测。
以上为本说明书实施例所提供的应用安装包的二次打包检测方法,基于相同的发明构思,本说明书实施例还提供了相应的应用安装包的二次打包检测装置。如图2所示,该装置具体包括:
采集模块21,用于通过预置探针软件开发工具包SDK采集不小于预设数量的移动终端上的目标应用安装包APK的APK数据;所述APK数据包括所述目标APK的APK编号和所述目标APK的电子签名MD5值;
分类模块22,用于基于统计学算法,根据所述APK数据,对所述目标APK进行分类;
检测模块23,用于根据分类结果,检测出被二次打包的目标APK。
上述装置实施例的具体工作流程可以包括:采集模块21,通过预置探针软件开发工具包SDK采集不小于预设数量的移动终端上的目标应用安装包APK的APK数据;分类模块22,基于统计学算法,根据所述APK数据,对所述目标APK进行分类;检测模块23,根据分类结果,检测出被二次打包的目标APK。
在一种实施方式中,所述装置,还包括:
植入模块,用于将所述探针SDK植入所述移动终端的任一系统程序,和/或,将所述探针SDK植入所述移动终端的任一应用程序。
在一种实施方式中,采集模块21,具体包括:在所述任一系统程序运行时,和/或,所述任一应用程序启动运行时,通过所述探针SDK采集所述不小于预设数量的移动终端上的目标APK的APK编号和MD5值。
在一种实施方式中,所述装置,还包括:
发送模块,用于将采集到的APK编号和MD5值发送至云端;
存储模块,用于按照预设数据存储结构,将所述采集到的APK编号和MD5值存储于所述云端中预先构建的数据库中。
在一种实施方式中,所述分类模块22,包括:
距离确定单元,用于根据所述APK编号和所述MD5值,以及预先定义的距离度量方式,确定所述不小于预设数量的目标APK之间的距离;
分类单元,用于基于所述距离,对所述目标APK进行分类。
在一种实施方式中,所述预先定义的距离度量方式,包括:
定义MD5值相同的目标APK之间的距离为0;
定义MD5值不同的目标APK之间的距离为1。
在一种实施方式中,所述分类单元,包括:
矩阵构建子单元,用于根据所述距离,构建距离矩阵;
筛选子单元,用于通过对所述距离矩阵进行矩阵变换,筛出多个子距离矩阵;其中,所述多个子距离矩阵中的每个子距离矩阵分别对应一类目标APK;所述每个子距离矩阵中的距离为0。
在本说明书实施例中,通过预置的探针SDK可以实时采集应用程序的APK数据,APK数据包括APK版本号和MD5值,再通过统计学算法,对采集的APK数据,进行APK分类,由于移动终端上安装二次打包的应用数量比重较低,基于统计学算法,可以将分类结果中包含APK数量较少的一类分离出来,从而可以实现将采集的APK数据中是二次打包的应用程序检测出来,以实现对二次打包的APK的实时检测。
以上为本说明书实施例提供的应用安装包的二次打包检测方法及装置,如图3所示,本说明书上实施例还提供一种应用安装包的二次打包检测系统。
该应用安装包的二次打包检测系统,可以包括:探针SDK、云端数据分析中心、移动终端以及告警模块。
其中,探针SDK,被植入至移动终端上的任一系统程序,和/或,任一应用程序,用于采集移动终端上目标APK的APK数据,并将采集的APK数据上报云端数据分析中心。
云端数据分析中心,用于根据采集到的APK数据,检测出二次打包的APK,并生成检测报告。其中,根据采集到的APK数据,检测出二次打包的APK,可以具体采用上述本说明书实施例提供的应用安装包的二次打包检测方法中的相关技术手段,具体来说,可以采用步骤12和步骤13中所提供的方法,在此不在赘述。
告警模块,用于根据生成的检测报告,向移动终端发出警告。
在本说明书实施例中,通过预置的探针SDK可以实时采集应用程序的APK数据,再通过云端数据分析中心将采集的APK数据中是二次打包的应用程序检测出来,并通过告警模块,向移动终端发出告警,可以实现对二次打包的APK的实时检测,降低移动终端用户安装二次打包的应用程序的概率。
本说明书实施例还提出了一种电子设备,示意图请参考图4,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成应用安装包的二次打包检测装置。处理器,执行存储器所存放的程序,并至少用于执行以下操作:
通过预置探针软件开发工具包SDK采集不小于预设数量的移动终端上的目标应用安装包APK的APK数据;所述APK数据包括所述目标APK的APK编号和所述目标APK的电子签名MD5值;
基于统计学算法,根据所述APK数据,对所述目标APK进行分类;
根据分类结果,检测出被二次打包的目标APK。
上述如本申请图1所示实施例揭示的应用安装包的二次打包检测装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(CentralProcessing Unit,CPU)、网络处理器(Fetwork Processor,FP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图1中应用安装包的二次打包检测装置执行的方法,并实现应用安装包的二次打包检测装置在图1所示实施例的功能,本说明书实施例在此不再赘述。
本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图1所示实施例中应用安装包的二次打包检测装置执行的方法,并至少用于执行:
通过预置探针软件开发工具包SDK采集不小于预设数量的移动终端上的目标应用安装包APK的APK数据;所述APK数据包括所述目标APK的APK编号和所述目标APK的电子签名MD5值;
基于统计学算法,根据所述APK数据,对所述目标APK进行分类;
根据分类结果,检测出被二次打包的目标APK。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其它数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其它类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其它内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其它光学存储、磁盒式磁带,磁带磁磁盘存储或其它磁性存储设备或任何其它非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种应用安装包的二次打包检测方法,其特征在于,包括:
通过预置探针软件开发工具包SDK采集不小于预设数量的移动终端上的目标应用安装包APK的APK数据;所述APK数据包括所述目标APK的APK编号和所述目标APK的电子签名MD5值;
基于统计学算法,根据所述APK数据,对所述目标APK进行分类;
根据分类结果,检测出被二次打包的目标APK。
2.如权利要求1所述的方法,其特征在于,所述方法,还包括:
将所述探针SDK植入所述移动终端的任一系统程序,和/或,将所述探针SDK植入所述移动终端的任一应用程序。
3.如权利要求2所述的方法,其特征在于,所述通过预置探针SDK采集不小于预设数量的移动终端上的目标APK的APK数据,包括:
在所述任一系统程序运行时,和/或,所述任一应用程序启动运行时,通过所述探针SDK采集所述不小于预设数量的移动终端上的目标APK的APK数据。
4.如权利要求3所述的方法,其特征在于,所述方法,还包括:
将采集到的APK编号和MD5值发送至云端;
按照预设数据存储结构,将所述采集到的APK编号和MD5值存储于所述云端中预先构建的数据库中。
5.如权利要求4所述的方法,其特征在于,基于统计学算法,根据所述APK数据,对所述目标APK进行分类,包括:
根据所述APK编号和所述MD5值,以及预先定义的距离度量方式,确定所述不小于预设数量的目标APK之间的距离;
基于所述距离,对所述目标APK进行分类。
6.如权利要求5所述的方法,其特征在于,所述预先定义的距离度量方式,包括:
定义MD5值相同的目标APK之间的距离为0;
定义MD5值不同的目标APK之间的距离为1。
7.如权利要求6所述的方法,其特征在于,所述基于所述距离,对所述目标APK进行分类,包括:
根据所述距离,构建距离矩阵;
通过对所述距离矩阵进行矩阵变换,筛出多个子距离矩阵;其中,所述多个子距离矩阵中的每个子距离矩阵分别对应一类目标APK;所述每个子距离矩阵中的距离为0。
8.一种应用安装包的二次打包检测装置,其特征在于,包括:
采集模块,用于通过预置探针软件开发工具包SDK采集不小于预设数量的移动终端上的目标应用安装包APK的APK数据;所述APK数据包括所述目标APK的APK编号和所述目标APK的电子签名MD5值;
分类模块,用于基于统计学算法,根据所述APK数据,对所述目标APK进行分类;
检测模块,用于根据分类结果,检测出被二次打包的目标APK。
9.一种电子设备,其特征在于,包括:存储器、处理器及存储在所在存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的应用安装包的二次打包检测方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的应用安装包的二次打包检测方法的步骤。
CN202010260865.7A 2020-04-03 2020-04-03 一种应用安装包的二次打包检测方法及装置 Active CN113496012B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010260865.7A CN113496012B (zh) 2020-04-03 2020-04-03 一种应用安装包的二次打包检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010260865.7A CN113496012B (zh) 2020-04-03 2020-04-03 一种应用安装包的二次打包检测方法及装置

Publications (2)

Publication Number Publication Date
CN113496012A true CN113496012A (zh) 2021-10-12
CN113496012B CN113496012B (zh) 2023-11-03

Family

ID=77995113

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010260865.7A Active CN113496012B (zh) 2020-04-03 2020-04-03 一种应用安装包的二次打包检测方法及装置

Country Status (1)

Country Link
CN (1) CN113496012B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104424402A (zh) * 2013-08-28 2015-03-18 卓易畅想(北京)科技有限公司 一种用于检测盗版应用程序的方法及装置
KR20160090566A (ko) * 2015-01-22 2016-08-01 국민대학교산학협력단 유효마켓 데이터를 이용한 apk 악성코드 검사 장치 및 방법
CN109687974A (zh) * 2018-12-26 2019-04-26 努比亚技术有限公司 Apk验证方法、装置、移动终端及可读存储介质
CN109918948A (zh) * 2019-01-23 2019-06-21 西安邮电大学 基于国密算法sm3的apk完整性校验方法、计算机程序
CN110276173A (zh) * 2019-06-18 2019-09-24 福州数据技术研究院有限公司 带服务器的双系统终端防止apk二次打包运行方法
CN110324208A (zh) * 2019-07-18 2019-10-11 深圳市易平方网络科技有限公司 一种数据丢失处理方法、智能终端及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104424402A (zh) * 2013-08-28 2015-03-18 卓易畅想(北京)科技有限公司 一种用于检测盗版应用程序的方法及装置
KR20160090566A (ko) * 2015-01-22 2016-08-01 국민대학교산학협력단 유효마켓 데이터를 이용한 apk 악성코드 검사 장치 및 방법
CN109687974A (zh) * 2018-12-26 2019-04-26 努比亚技术有限公司 Apk验证方法、装置、移动终端及可读存储介质
CN109918948A (zh) * 2019-01-23 2019-06-21 西安邮电大学 基于国密算法sm3的apk完整性校验方法、计算机程序
CN110276173A (zh) * 2019-06-18 2019-09-24 福州数据技术研究院有限公司 带服务器的双系统终端防止apk二次打包运行方法
CN110324208A (zh) * 2019-07-18 2019-10-11 深圳市易平方网络科技有限公司 一种数据丢失处理方法、智能终端及存储介质

Also Published As

Publication number Publication date
CN113496012B (zh) 2023-11-03

Similar Documents

Publication Publication Date Title
CN109347787B (zh) 一种身份信息的识别方法及装置
CN112003838B (zh) 网络威胁的检测方法、装置、电子装置和存储介质
CN109933984B (zh) 一种最佳聚类结果筛选方法、装置和电子设备
CN111104664B (zh) 一种电子设备的风险识别方法及服务器
CN113489713B (zh) 网络攻击的检测方法、装置、设备及存储介质
CN104731816A (zh) 一种处理异常业务数据的方法和装置
CN110751515A (zh) 一种基于用户消费行为的决策方法和装置、电子设备及存储介质
CN110008986B (zh) 批量风险案件识别方法、装置及电子设备
CA3024889C (en) Method and device for preventing server from being attacked
CN109783341A (zh) 回归测试方法和装置
US20210263979A1 (en) Method, system and device for identifying crawler data
CN109583731B (zh) 一种风险识别方法、装置及设备
CN105184156A (zh) 一种安全威胁管理方法和系统
CN111369354A (zh) 面向区块链应用的数据监控方法、装置及存储介质
CN112526905B (zh) 一种针对指标异常的处理方法及系统
CN113326064A (zh) 划分业务逻辑模块的方法、电子设备及存储介质
CN111460448B (zh) 一种恶意软件家族检测方法及装置
CN113496012B (zh) 一种应用安装包的二次打包检测方法及装置
CN109446054B (zh) 基于大数据的越权操作请求的处理方法及终端设备
CN110866831A (zh) 资产活跃度等级的确定方法、装置及服务器
CN110213123A (zh) 一种流量监控方法、装置及设备
CN118138256A (zh) 一种数据访问管理方法和装置
CN114357458A (zh) 一种数据库风险评估系统、方法、电子设备及存储介质
CN116340127A (zh) 一种接口测试方法、装置
CN111385342B (zh) 一种物联网行业识别方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant