CN104954353A - Apk文件包的校验方法和装置 - Google Patents
Apk文件包的校验方法和装置 Download PDFInfo
- Publication number
- CN104954353A CN104954353A CN201510070091.0A CN201510070091A CN104954353A CN 104954353 A CN104954353 A CN 104954353A CN 201510070091 A CN201510070091 A CN 201510070091A CN 104954353 A CN104954353 A CN 104954353A
- Authority
- CN
- China
- Prior art keywords
- apk file
- check value
- verified
- content
- file bag
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种APK文件包的校验方法和装置。其中,APK文件包的校验方法包括:获取待校验APK文件包的组成文件;读取组成文件的内容;将读取到的内容写入第一目标文件;计算第一目标文件的第一校验值;发送包括第一校验值的校验请求至发布待校验APK文件包的服务器;以及接收校验结果,其中,服务器在接收到校验请求的情况下,根据第一校验值和第二校验值对待校验APK文件包进行校验,并返回校验结果,第二校验值为服务器存储的目标APK文件包的校验值,待校验APK文件包和目标APK文件包具有相同的标识信息。通过本发明,解决了现有技术中对APK文件包进行校验的安全性较低的技术问题,进而达到提高APK文件包校验准确度的效果。
Description
技术领域
本发明涉及安全技术领域,具体而言,涉及一种APK文件包的校验方法和装置。
背景技术
作为安卓系统的安装程序APK文件包,主要由包括存放应用程序资源的Assets,应用引用的库文件Lib、签名文件Meta-inf、资源文件Res、配置文件AndroidManifest.xml、程序编译后的代码Classes.dex和编译后的二进制资源文件Resources.arsc。
在对APK文件包进行校验过程中,现有技术中所采用的方式是基于APK文件包中的签名文件Meta-inf进行校验,此种校验方式由于是利用签名文件对APK文件包进行整体校验,对于APK文件包被非法篡改,但是签名文件未改变的情况,仍然能够校验通过,导致校验的安全性降低。
针对现有技术中对APK文件包进行校验的安全性较低的技术问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种APK文件包的校验方法和装置,以至少解决现有技术中对APK文件包进行校验的安全性较低的技术问题。
根据本发明实施例的一个方面,提供了一种APK文件包的校验方法。
根据本发明实施例的APK文件包的校验方法包括:获取待校验APK文件包的组成文件;读取所述组成文件的内容;将读取到的内容写入第一目标文件;计算所述第一目标文件的第一校验值;发送包括所述第一校验值的校验请求至发布所述待校验APK文件包的服务器;以及接收校验结果,其中,所述服务器在接收到所述校验请求的情况下,根据所述第一校验值和第二校验值对所述待校验APK文件包进行校验,并返回所述校验结果,所述第二校验值为所述服务器存储的目标APK文件包的校验值,所述待校验APK文件包和所述目标APK文件包具有相同的标识信息。
根据本发明实施例的另一方面,还提供了一种APK文件包的校验装置。
根据本发明实施例的APK文件包的校验装置包括:获取单元,用于获取待校验APK文件包的组成文件;读取单元,用于读取所述组成文件的内容;写入单元,用于将读取到的内容写入第一目标文件;计算单元,用于计算所述第一目标文件的第一校验值;发送单元,用于发送包括所述第一校验值的校验请求至发布所述待校验APK文件包的服务器;以及接收单元,用于接收校验结果,其中,所述服务器在接收到所述校验请求的情况下,根据所述第一校验值和第二校验值对所述待校验APK文件包进行校验,并返回所述校验结果,所述第二校验值为所述服务器存储的目标APK文件包的校验值,所述待校验APK文件包和所述目标APK文件包具有相同的标识信息。
在本发明实施例中,采用获取待校验APK文件包的组成文件;读取所述组成文件的内容;将读取到的内容写入第一目标文件;计算所述第一目标文件的第一校验值;发送包括所述第一校验值的校验请求至发布所述待校验APK文件包的服务器;以及接收校验结果,其中,所述服务器在接收到所述校验请求的情况下,根据所述第一校验值和第二校验值对所述待校验APK文件包进行校验,并返回所述校验结果,所述第二校验值为所述服务器存储的目标APK文件包的校验值,所述待校验APK文件包和所述目标APK文件包具有相同的标识信息。通过对APK文件包的组成文件进行读取,并基于读取到的内容所计算处校验值进行校验,实现了从APK文件包的结构入手,对其组成的内容进行分析,这样一旦APK文件包被非法篡改,即便签名文件未改变,仍然会造成计算出的校验值与服务器上所存储的未被篡改前的校验值不相同,能够准确校验值APK文件包不合法,避免了现有技术中基于APK文件包中的签名文件Meta-inf进行校验容易导致校验的安全性降低的弊端,解决了现有技术中对APK文件包进行校验的安全性较低的技术问题,进而达到提高APK文件包校验准确度的效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的APK文件包的校验方法所应用的硬件环境的示意图;
图2是根据本发明实施例的APK文件包的校验方法的流程图;
图3是根据本发明实施例的APK文件包的校验方法中APK文件包的组成示意图;
图4是根据本发明实施例的APK文件包的校验方法的校验原理图;
图5是根据本发明实施例的APK文件包的校验装置的示意图;以及
图6是实施本发明实施例的APK文件包校验方法的移动终端的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种可以通过本申请装置实施例执行的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
根据本发明实施例,提供了一种APK文件包的校验方法。
可选地,在本实施例中,上述APK文件包的校验方法可以应用于如图1所示的移动终端102和服务器104所构成的硬件环境中。如图1所示,移动终端102通过网络与服务器104进行连接,上述网络包括但不限于:移动通信网络、广域网、城域网或局域网,移动终端102可以是能够安装APK文件包程序的终端,具体可以是手机终端,也可以是PC终端、笔记本终端或平板电脑终端。
图2是根据本发明实施例的APK文件包的校验方法的流程图,以下结合图2对本发明实施例所提供的APK文件包的校验方法做具体介绍,如图2所示,该APK文件包的校验方法主要包括如下步骤S202至步骤S212:
S202:获取待校验APK文件包的组成文件,图3是根据本发明实施例的APK文件包的校验方法中APK文件包的组成示意图,如图3所示,APK文件包的组成文件主要分成两部分,一是不允许修改的部分,一是允许出现差异的部分,也即是允许修改的部分,其中,不允许修改的部分是影响APK文件包安全的主要因素,这部分内容主要包括代码(包括应用引用的库文件Lib和程序编译后的代码Classes.dex)、资源(包括存放应用程序资源的Assets和资源文件Res)和配置(包括配置文件AndroidManifest.xml)。在移动终端102首次启动待校验APK文件包的情况下,对待校验APK文件包的组成文件进行获取。
S204:读取组成文件的内容。
S206:将读取到的内容写入第一目标文件,在本发明实施例中,第一目标文件可以是CAPK格式的文件。
S208:计算第一目标文件的第一校验值,其中,第一校验值可以是第一目标文件的MD5,具体计算方式可以采用现有技术中任一种计算MD5值的计算方式。
S210:发送包括第一校验值的校验请求至发布待校验APK文件包的服务器。
S212:接收校验结果,其中,服务器在接收到校验请求的情况下,根据第一校验值和第二校验值对待校验APK文件包进行校验,并返回校验结果,第二校验值为服务器存储的目标APK文件包的校验值,待校验APK文件包和目标APK文件包具有相同的标识信息,即,服务器在将某个APK文件包括发布至移动终端102之前,会先计算出该APK文件包的校验值,并将计算出的校验值存储在服务器上,同样,该校验值可以是MD5值,后续再接收到移动终端102发送过来的校验情况的情况下,通过对比第一校验值和第二校验值来确定待校验APK文件包是否合法。
对于APK文件包,可以用7zip之类的解压软件直接打开,如果想要对内容进行修改,可以用dex2jar把classes.dex反编译成jar文件,然后用jd-gui打开反编译成出的jar文件,找出需要修改的地方,最后用apktool反编译整个apk包,采用此种方式可以对APK文件包进行功能的注入,对代码进行增加(如:非法注入广告)、删除(如:功能删减)和改动(如,设置钓鱼网站)等。
打开后的res文件夹里是资源文件,APK文件包程序所涉及的图片、背景音乐等都在这里,对程序进行汉化基本上也在是这里修改,通过修改res文件夹里的内容可以对APK文件包进行个性化修改,修改后用apktool反编译整个apk包即可。
本发明实施例所提供的APK文件包的校验方法,通过对APK文件包的组成文件进行读取,并基于读取到的内容所计算处校验值进行校验,实现了从APK文件包的结构入手,对其组成的内容进行分析,这样一旦APK文件包被非法篡改,即便签名文件未改变,仍然会造成计算出的校验值与服务器上所存储的未被篡改前的校验值不相同,能够准确校验值APK文件包不合法,避免了现有技术中基于APK文件包中的签名文件Meta-inf进行校验容易导致校验的安全性降低的弊端,解决了现有技术中对APK文件包进行校验的安全性较低的技术问题,进而达到提高APK文件包校验准确度的效果。
具体地,在本发明实施例中,对组成文件的内容进行读取过程中,可以先从组成文件中查找第二目标文件,其中,第二目标文件的内容不允许修改,即,查找到组成文件中不允许修改的部分,将这部分文件作为第二目标文件,然后读取第二目标文件的内容。
通过对组成文件中内容不允许修改的文件进行查找,以排除掉内容允许被修改的部分,对允许修改部分的内容不再进行读取和写入,后续进行MD5值计算过程中,也不涉及对该部分内容,实现了减少进行MD5计算时的数据量,以提高计算速度,进而达到了提高校验效率的效果。
优选地,在读取到的内容写入第一目标文件过程中,可以按照读取顺序依次将读取到的内容写入第一目标文件。服务器104在对目标APK文件包的校验值进行计算过程中,同样是读取目标APK文件包的组成文件的内容,并按照读取顺序将读取到的内容写入CAPK文件,然后对CAPK文件的MD5值进行计算。
通过控制移动终端按照读取顺序依次将读取到的内容写入第一目标文件,实现了保证移动终端侧写入内容与服务器侧写入内容的一致性,进而避免因为写入内容的不一致所造成的校验值不相同,出现将合法的待校验APK文件包误校验为不合法,达到提高校验精确度的效果。
在本发明实施例中,读取到的内容可以是二进制内容,即,在进行内容读取过程中,是对组成文件或第二目标文件的二进制内容进行读取。然后,以二进制的数据格式,将读取到的内容写入到第一目标文件中。
进一步优选地,在获取待校验APK文件包的组成文件之后,并且在读取组成文件的内容之前,本发明实施例的校验方法还包括:按照组成文件的文件名对组成文件进行排序。服务器104在对目标APK文件包的校验值进行计算过程中,同样是按照组成文件的文件名对目标APK文件包的组成文件进行排序,后续再进行内容的读取和MD5值的计算。
通过对组成文件进行排序,然后基于排序的组成文件进行内容的读取和MD5值的计算,同样是为了保证移动终端侧写入内容与服务器侧写入内容的一致性,进而避免因为写入内容的不一致所造成的校验值不相同,出现将合法的待校验APK文件包误校验为不合法,达到进一步提高校验精确度的效果。
其中,服务器在接收到校验请求的情况下,根据第一校验值和第二校验值对待校验APK文件包进行校验,并返回校验结果主要是判断第一校验值和第二校验值是否相同,在判断出第一校验值和第二校验值相同的情况下,确定校验结果为表示待校验APK文件包合法的结果,在判断出第一校验值和第二校验值不相同的情况下,确定校验结果为表示待校验APK文件包非法的结果。
具体地,图4是根据本发明实施例的APK文件包的校验方法的校验原理图,如图4所示,移动终端对待校验APK文件包进行分析处理,读取出二进制内容,并依次写入CAPK文件,然后计算出第一校验值;服务器对与待校验APK文件包具有相同标识信息的目标APK文件包进行分析处理,读取出二进制内容,并依次写入CAPK文件,最后计算出第二校验值,然后通过比较第一校验值和第二校验值是否相同,来确定待校验APK文件包合法与否。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述APK文件包的校验方法的APK文件包的校验装置,该APK文件包的校验装置主要用于执行本发明实施例上述内容所提供的APK文件包的校验方法,以下对本发明实施例所提供的APK文件包的校验装置做具体介绍:
图5是根据本发明实施例的APK文件包的校验装置的示意图,如图5所示,该APK文件包的校验装置主要包括获取单元10、读取单元20、写入单元30、计算单元40、发送单元50和接收单元60,其中:
获取单元10用于获取待校验APK文件包的组成文件,图3是根据本发明实施例的APK文件包的校验方法中APK文件包的组成示意图,如图3所示,APK文件包的组成文件主要分成两部分,一是不允许修改的部分,一是允许出现差异的部分,也即是允许修改的部分,其中,不允许修改的部分是影响APK文件包安全的主要因素,这部分内容主要包括代码(包括应用引用的库文件Lib和程序编译后的代码Classes.dex)、资源(包括存放应用程序资源的Assets和资源文件Res)和配置(包括配置文件AndroidManifest.xml)。在移动终端102首次启动待校验APK文件包的情况下,对待校验APK文件包的组成文件进行获取。
读取单元20用于读取组成文件的内容。
写入单元30用于将读取到的内容写入第一目标文件,在本发明实施例中,第一目标文件可以是CAPK格式的文件。
计算单元40用于计算第一目标文件的第一校验值,其中,第一校验值可以是第一目标文件的MD5,具体计算方式可以采用现有技术中任一种计算MD5值的计算方式。
发送单元50用于发送包括第一校验值的校验请求至发布待校验APK文件包的服务器。
接收单元60用于接收校验结果,其中,服务器在接收到校验请求的情况下,根据第一校验值和第二校验值对待校验APK文件包进行校验,并返回校验结果,第二校验值为服务器存储的目标APK文件包的校验值,待校验APK文件包和目标APK文件包具有相同的标识信息,即,服务器在将某个APK文件包括发布至移动终端102之前,会先计算出该APK文件包的校验值,并将计算出的校验值存储在服务器上,同样,该校验值可以是MD5值,后续再接收到移动终端102发送过来的校验情况的情况下,通过对比第一校验值和第二校验值来确定待校验APK文件包是否合法。
对于APK文件包,可以用7zip之类的解压软件直接打开,如果想要对内容进行修改,可以用dex2jar把classes.dex反编译成jar文件,然后用jd-gui打开反编译成出的jar文件,找出需要修改的地方,最后用apktool反编译整个apk包,采用此种方式可以对APK文件包进行功能的注入,对代码进行增加(如:非法注入广告)、删除(如:功能删减)和改动(如,设置钓鱼网站)等。
打开后的res文件夹里是资源文件,APK文件包程序所涉及的图片、背景音乐等都在这里,对程序进行汉化基本上也在是这里修改,通过修改res文件夹里的内容可以对APK文件包进行个性化修改,修改后用apktool反编译整个apk包即可。
本发明实施例所提供的APK文件包的校验装置,通过对APK文件包的组成文件进行读取,并基于读取到的内容所计算处校验值进行校验,实现了从APK文件包的结构入手,对其组成的内容进行分析,这样一旦APK文件包被非法篡改,即便签名文件未改变,仍然会造成计算出的校验值与服务器上所存储的未被篡改前的校验值不相同,能够准确校验值APK文件包不合法,避免了现有技术中基于APK文件包中的签名文件Meta-inf进行校验容易导致校验的安全性降低的弊端,解决了现有技术中对APK文件包进行校验的安全性较低的技术问题,进而达到提高APK文件包校验准确度的效果。
具体地,读取单元20主要包括查找子单元和第一读取子单元,对组成文件的内容进行读取过程中,查找子单元可以先从组成文件中查找第二目标文件,其中,第二目标文件的内容不允许修改,即,查找到组成文件中不允许修改的部分,将这部分文件作为第二目标文件,然后由第一读取子单元读取第二目标文件的内容。
通过对组成文件中内容不允许修改的文件进行查找,以排除掉内容允许被修改的部分,对允许修改部分的内容不再进行读取和写入,后续进行MD5值计算过程中,也不涉及对该部分内容,实现了减少进行MD5计算时的数据量,以提高计算速度,进而达到了提高校验效率的效果。
优选地,写入单元30主要包括写入子单元,该写入子单元主要用于按照读取顺序依次将读取到的内容写入第一目标文件。服务器104在对目标APK文件包的校验值进行计算过程中,同样是读取目标APK文件包的组成文件的内容,并按照读取顺序将读取到的内容写入CAPK文件,然后对CAPK文件的MD5值进行计算。
通过控制移动终端按照读取顺序依次将读取到的内容写入第一目标文件,实现了保证移动终端侧写入内容与服务器侧写入内容的一致性,进而避免因为写入内容的不一致所造成的校验值不相同,出现将合法的待校验APK文件包误校验为不合法,达到提高校验精确度的效果。
此外,读取单元20还包括第二读取子单元,在进行内容读取过程中,第二读取子单元用于对组成文件或第二目标文件的二进制内容进行读取。然后,以二进制的数据格式,将读取到的内容写入到第一目标文件中。相应地,写入单元30以二进制的数据格式,将读取到的内容写入到第一目标文件中。
进一步优选地,本发明实施例所提供的APK文件包的校验装置还包括排序单元,在获取单元10获取待校验APK文件包的组成文件之后,并且在读取单元20读取组成文件的内容之前,排序单元用于按照组成文件的文件名对组成文件进行排序。服务器104在对目标APK文件包的校验值进行计算过程中,同样是按照组成文件的文件名对目标APK文件包的组成文件进行排序,后续再进行内容的读取和MD5值的计算。
通过对组成文件进行排序,然后基于排序的组成文件进行内容的读取和MD5值的计算,同样是为了保证移动终端侧写入内容与服务器侧写入内容的一致性,进而避免因为写入内容的不一致所造成的校验值不相同,出现将合法的待校验APK文件包误校验为不合法,达到进一步提高校验精确度的效果。
其中,本发明实施例所提供的APK文件包的校验装置还包括判断单元、第一确定单元和第二确定单元,判断单元用于判断第一校验值和第二校验值是否相同;第一确定单元用于在判断单元判断出第一校验值和第二校验值相同的情况下,确定校验结果为表示待校验APK文件包合法的结果;第一确定单元用于在判断单元判断出第一校验值和第二校验值不相同的情况下,确定校验结果为表示待校验APK文件包非法的结果。
具体地,移动终端对待校验APK文件包进行分析处理,读取出二进制内容,并依次写入CAPK文件,然后计算出第一校验值;服务器对与待校验APK文件包具有相同标识信息的目标APK文件包进行分析处理,读取出二进制内容,并依次写入CAPK文件,最后计算出第二校验值,然后通过比较第一校验值和第二校验值是否相同,来确定待校验APK文件包合法与否。
实施例3
根据本发明实施例,还提供了一种用于实施上述APK文件包校验方法的移动终端,如图6所示,该移动终端主要包括处理器601、显示器602、数据接口603、存储器604和网络接口605,其中:
数据接口603主要通过数据传输的方式将服务器104发布的APK文件包传输给处理器601。
网络接口605则主要用于与服务器进行网络通信,通过网络通信方式将服务器104发布的APK文件包传输给处理器401,或者将移动终端的相关请求发送至服务器。
存储器604主要用于存储APK文件包校验过程中的中间文件。
显示器602主要用于显示APK文件包的校验结果。
处理器601主要用于执行如下操作:
获取待校验APK文件包的组成文件;读取组成文件的内容;将读取到的内容写入第一目标文件;计算第一目标文件的第一校验值;发送包括第一校验值的校验请求至发布待校验APK文件包的服务器;以及接收校验结果,其中,服务器在接收到校验请求的情况下,根据第一校验值和第二校验值对待校验APK文件包进行校验,并返回校验结果,第二校验值为服务器存储的目标APK文件包的校验值,待校验APK文件包和目标APK文件包具有相同的标识信息。
处理器601还用于从组成文件中查找第二目标文件,其中,第二目标文件的内容不允许修改;以及读取第二目标文件的内容。
处理器601还用于按照读取顺序依次将读取到的内容写入第一目标文件。
处理器601还用于读取组成文件的二进制内容。
处理器601还用于按照组成文件的文件名对组成文件进行排序。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
实施例4
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于存储本发明实施例的APK文件包的校验方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于移动通信网络、广域网、城域网或局域网的网络中的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,获取待校验APK文件包的组成文件。
S2,读取组成文件的内容。
S3,将读取到的内容写入第一目标文件。
S4,计算第一目标文件的第一校验值。
S5,发送包括第一校验值的校验请求至发布待校验APK文件包的服务器。
S6,接收校验结果,其中,服务器在接收到校验请求的情况下,根据第一校验值和第二校验值对待校验APK文件包进行校验,并返回校验结果,第二校验值为服务器存储的目标APK文件包的校验值,待校验APK文件包和目标APK文件包具有相同的标识信息。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行从组成文件中查找第二目标文件,其中,第二目标文件的内容不允许修改;以及读取第二目标文件的内容。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行按照读取顺序依次将读取到的内容写入第一目标文件。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行读取组成文件的二进制内容。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行按照组成文件的文件名对组成文件进行排序。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行判断第一校验值和第二校验值是否相同;在判断出第一校验值和第二校验值相同的情况下,确定校验结果为表示待校验APK文件包合法的结果;以及在判断出第一校验值和第二校验值不相同的情况下,确定校验结果为表示待校验APK文件包非法的结果。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种APK文件包的校验方法,其特征在于,包括:
获取待校验APK文件包的组成文件;
读取所述组成文件的内容;
将读取到的内容写入第一目标文件;
计算所述第一目标文件的第一校验值;
发送包括所述第一校验值的校验请求至发布所述待校验APK文件包的服务器;以及
接收校验结果,其中,所述服务器在接收到所述校验请求的情况下,根据所述第一校验值和第二校验值对所述待校验APK文件包进行校验,并返回所述校验结果,所述第二校验值为所述服务器存储的目标APK文件包的校验值,所述待校验APK文件包和所述目标APK文件包具有相同的标识信息。
2.根据权利要求1所述的校验方法,其特征在于,读取所述组成文件的内容包括:
从所述组成文件中查找第二目标文件,其中,所述第二目标文件的内容不允许修改;以及
读取所述第二目标文件的内容。
3.根据权利要求1或2所述的校验方法,其特征在于,将读取到的内容写入第一目标文件包括:
按照读取顺序依次将读取到的内容写入所述第一目标文件。
4.根据权利要求1所述的校验方法,其特征在于,读取所述组成文件的内容包括:
读取所述组成文件的二进制内容。
5.根据权利要求1所述的校验方法,其特征在于,在获取待校验APK文件包的组成文件之后,并且在读取所述组成文件的内容之前,所述校验方法还包括:
按照所述组成文件的文件名对所述组成文件进行排序。
6.根据权利要求1所述的校验方法,其特征在于,所述服务器在接收到所述校验请求的情况下,根据所述第一校验值和第二校验值对所述待校验APK文件包进行校验,并返回所述校验结果包括:
判断所述第一校验值和所述第二校验值是否相同;
在判断出所述第一校验值和所述第二校验值相同的情况下,确定所述校验结果为表示所述待校验APK文件包合法的结果;以及
在判断出所述第一校验值和所述第二校验值不相同的情况下,确定所述校验结果为表示所述待校验APK文件包非法的结果。
7.一种APK文件包的校验装置,其特征在于,包括:
获取单元,用于获取待校验APK文件包的组成文件;
读取单元,用于读取所述组成文件的内容;
写入单元,用于将读取到的内容写入第一目标文件;
计算单元,用于计算所述第一目标文件的第一校验值;
发送单元,用于发送包括所述第一校验值的校验请求至发布所述待校验APK文件包的服务器;以及
接收单元,用于接收校验结果,其中,所述服务器在接收到所述校验请求的情况下,根据所述第一校验值和第二校验值对所述待校验APK文件包进行校验,并返回所述校验结果,所述第二校验值为所述服务器存储的目标APK文件包的校验值,所述待校验APK文件包和所述目标APK文件包具有相同的标识信息。
8.根据权利要求7所述的校验装置,其特征在于,所述读取单元包括:
查找子单元,用于从所述组成文件中查找第二目标文件,其中,所述第二目标文件的内容不允许修改;以及
第一读取子单元,用于读取所述第二目标文件的内容。
9.根据权利要求7或8所述的校验装置,其特征在于,所述写入单元包括:
写入子单元,用于按照读取顺序依次将读取到的内容写入所述第一目标文件。
10.根据权利要求7所述的校验装置,其特征在于,所述读取单元包括:
第二读取子单元,用于读取所述组成文件的二进制内容。
11.根据权利要求7所述的校验装置,其特征在于,所述校验装置还包括:
排序单元,用于在所述获取单元获取待校验APK文件包的组成文件之后,并且在所述读取单元读取所述组成文件的内容之前,按照所述组成文件的文件名对所述组成文件进行排序。
12.根据权利要求7所述的校验装置,其特征在于,所述校验装置还包括:
判断单元,用于判断所述第一校验值和所述第二校验值是否相同;
第一确定单元,用于在所述判断单元判断出所述第一校验值和所述第二校验值相同的情况下,确定所述校验结果为表示所述待校验APK文件包合法的结果;以及
第一确定单元,用于在所述判断单元判断出所述第一校验值和所述第二校验值不相同的情况下,确定所述校验结果为表示所述待校验APK文件包非法的结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510070091.0A CN104954353B (zh) | 2015-02-10 | 2015-02-10 | Apk文件包的校验方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510070091.0A CN104954353B (zh) | 2015-02-10 | 2015-02-10 | Apk文件包的校验方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104954353A true CN104954353A (zh) | 2015-09-30 |
CN104954353B CN104954353B (zh) | 2018-03-30 |
Family
ID=54168712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510070091.0A Active CN104954353B (zh) | 2015-02-10 | 2015-02-10 | Apk文件包的校验方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104954353B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105631342A (zh) * | 2015-12-22 | 2016-06-01 | 北京无线电计量测试研究所 | 一种针对地下管线移动地理信息安全的渗透测试方法 |
CN105740660A (zh) * | 2016-01-20 | 2016-07-06 | 广州彩瞳网络技术有限公司 | 一种应用安全性的检测方法及装置 |
CN106326048A (zh) * | 2016-08-11 | 2017-01-11 | 广东欧珀移动通信有限公司 | 外部存储设备的检测方法和装置 |
CN106548065A (zh) * | 2016-10-27 | 2017-03-29 | 海信集团有限公司 | 应用程序安装检测方法及装置 |
CN106548092A (zh) * | 2016-10-31 | 2017-03-29 | 杭州嘉楠耘智信息科技有限公司 | 一种文件处理方法及装置 |
CN106778099A (zh) * | 2016-11-29 | 2017-05-31 | 北京奇虎科技有限公司 | 防篡改apk的生成方法和装置、安装及运行方法和装置 |
CN106911678A (zh) * | 2017-02-14 | 2017-06-30 | 杭州迪普科技股份有限公司 | 一种病毒检测方法及装置 |
CN107085692A (zh) * | 2017-03-31 | 2017-08-22 | 武汉斗鱼网络科技有限公司 | 一种安全加载Flash文件的方法及装置 |
CN107122661A (zh) * | 2017-03-31 | 2017-09-01 | 武汉斗鱼网络科技有限公司 | 一种安全加载Flash文件的方法及装置 |
CN108460273A (zh) * | 2017-12-27 | 2018-08-28 | 中国银联股份有限公司 | 一种终端的应用管理方法、应用服务器及终端 |
CN109684839A (zh) * | 2018-12-19 | 2019-04-26 | Oppo广东移动通信有限公司 | 自定义模型防篡改方法、装置、终端设备及存储介质 |
CN111654774A (zh) * | 2020-06-08 | 2020-09-11 | 歌尔科技有限公司 | 一种耳机充电盒及找寻方法、系统、计算机可读存储介质 |
CN112306512A (zh) * | 2020-11-09 | 2021-02-02 | 武汉天喻信息产业股份有限公司 | 一种基于ccid协议下载安装apk文件的方法及系统 |
CN113031957A (zh) * | 2020-12-16 | 2021-06-25 | 深圳市欢太科技有限公司 | 应用程序的安装方法、客户端、终端、服务器及存储介质 |
CN113448747A (zh) * | 2021-05-14 | 2021-09-28 | 中科可控信息产业有限公司 | 数据传输方法、装置、计算机设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101795293A (zh) * | 2010-01-27 | 2010-08-04 | 浪潮(北京)电子信息产业有限公司 | 一种文件的下载方法、系统及发送装置、检测装置 |
CN102982258A (zh) * | 2012-11-09 | 2013-03-20 | 北京深思洛克软件技术股份有限公司 | 一种对移动应用程序进行原版校验的系统 |
CN103646082A (zh) * | 2013-12-12 | 2014-03-19 | 北京奇虎科技有限公司 | 一种文件校验的方法及装置 |
CN104123481A (zh) * | 2013-04-24 | 2014-10-29 | 贝壳网际(北京)安全技术有限公司 | 防止应用程序被篡改的方法及装置 |
-
2015
- 2015-02-10 CN CN201510070091.0A patent/CN104954353B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101795293A (zh) * | 2010-01-27 | 2010-08-04 | 浪潮(北京)电子信息产业有限公司 | 一种文件的下载方法、系统及发送装置、检测装置 |
CN102982258A (zh) * | 2012-11-09 | 2013-03-20 | 北京深思洛克软件技术股份有限公司 | 一种对移动应用程序进行原版校验的系统 |
CN104123481A (zh) * | 2013-04-24 | 2014-10-29 | 贝壳网际(北京)安全技术有限公司 | 防止应用程序被篡改的方法及装置 |
CN103646082A (zh) * | 2013-12-12 | 2014-03-19 | 北京奇虎科技有限公司 | 一种文件校验的方法及装置 |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105631342A (zh) * | 2015-12-22 | 2016-06-01 | 北京无线电计量测试研究所 | 一种针对地下管线移动地理信息安全的渗透测试方法 |
CN105740660B (zh) * | 2016-01-20 | 2019-02-15 | 广州优视网络科技有限公司 | 一种应用安全性的检测方法及装置 |
CN105740660A (zh) * | 2016-01-20 | 2016-07-06 | 广州彩瞳网络技术有限公司 | 一种应用安全性的检测方法及装置 |
CN106326048A (zh) * | 2016-08-11 | 2017-01-11 | 广东欧珀移动通信有限公司 | 外部存储设备的检测方法和装置 |
CN106548065B (zh) * | 2016-10-27 | 2020-05-26 | 海信集团有限公司 | 应用程序安装检测方法及装置 |
CN106548065A (zh) * | 2016-10-27 | 2017-03-29 | 海信集团有限公司 | 应用程序安装检测方法及装置 |
CN106548092A (zh) * | 2016-10-31 | 2017-03-29 | 杭州嘉楠耘智信息科技有限公司 | 一种文件处理方法及装置 |
CN106548092B (zh) * | 2016-10-31 | 2019-07-16 | 杭州嘉楠耘智信息科技有限公司 | 一种文件处理方法及装置 |
CN106778099A (zh) * | 2016-11-29 | 2017-05-31 | 北京奇虎科技有限公司 | 防篡改apk的生成方法和装置、安装及运行方法和装置 |
CN106911678A (zh) * | 2017-02-14 | 2017-06-30 | 杭州迪普科技股份有限公司 | 一种病毒检测方法及装置 |
CN107122661B (zh) * | 2017-03-31 | 2019-10-25 | 武汉斗鱼网络科技有限公司 | 一种安全加载Flash文件的方法及装置 |
CN107085692A (zh) * | 2017-03-31 | 2017-08-22 | 武汉斗鱼网络科技有限公司 | 一种安全加载Flash文件的方法及装置 |
CN107122661A (zh) * | 2017-03-31 | 2017-09-01 | 武汉斗鱼网络科技有限公司 | 一种安全加载Flash文件的方法及装置 |
CN107085692B (zh) * | 2017-03-31 | 2019-10-25 | 武汉斗鱼网络科技有限公司 | 一种安全加载Flash文件的方法及装置 |
CN108460273A (zh) * | 2017-12-27 | 2018-08-28 | 中国银联股份有限公司 | 一种终端的应用管理方法、应用服务器及终端 |
CN108460273B (zh) * | 2017-12-27 | 2022-10-14 | 中国银联股份有限公司 | 一种终端的应用管理方法、应用服务器及终端 |
CN109684839A (zh) * | 2018-12-19 | 2019-04-26 | Oppo广东移动通信有限公司 | 自定义模型防篡改方法、装置、终端设备及存储介质 |
CN111654774A (zh) * | 2020-06-08 | 2020-09-11 | 歌尔科技有限公司 | 一种耳机充电盒及找寻方法、系统、计算机可读存储介质 |
CN112306512A (zh) * | 2020-11-09 | 2021-02-02 | 武汉天喻信息产业股份有限公司 | 一种基于ccid协议下载安装apk文件的方法及系统 |
CN112306512B (zh) * | 2020-11-09 | 2023-12-26 | 武汉天喻信息产业股份有限公司 | 一种基于ccid协议下载安装apk文件的方法及系统 |
CN113031957A (zh) * | 2020-12-16 | 2021-06-25 | 深圳市欢太科技有限公司 | 应用程序的安装方法、客户端、终端、服务器及存储介质 |
CN113448747A (zh) * | 2021-05-14 | 2021-09-28 | 中科可控信息产业有限公司 | 数据传输方法、装置、计算机设备和存储介质 |
CN113448747B (zh) * | 2021-05-14 | 2024-04-26 | 中科可控信息产业有限公司 | 数据传输方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104954353B (zh) | 2018-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104954353A (zh) | Apk文件包的校验方法和装置 | |
JP6609047B2 (ja) | アプリケーション情報リスクマネジメントのための方法及びデバイス | |
CN107852412B (zh) | 用于网络钓鱼和品牌保护的系统和方法、计算机可读介质 | |
US10339575B2 (en) | Method and system for provenance tracking in software ecosystems | |
CN104199654A (zh) | 开放平台的调用方法及装置 | |
CN107797854B (zh) | 交易文件处理方法、装置、存储介质和计算机设备 | |
CN106529229B (zh) | 权限数据的处理方法和装置 | |
EP2901290A1 (en) | Detecting malicious advertisements using source code analysis | |
CN112491602A (zh) | 行为数据的监控方法、装置、计算机设备及介质 | |
CN110070360B (zh) | 一种事务请求处理方法、装置、设备及存储介质 | |
CN110708335A (zh) | 访问认证方法、装置及终端设备 | |
CN111160624B (zh) | 一种用户意向预测方法、用户意向预测装置及终端设备 | |
US20190058693A1 (en) | Systems and Methods for Securely Transferring Selective Datasets Between Terminals | |
CN112016138A (zh) | 一种车联网自动化安全建模的方法、装置和电子设备 | |
CN103973635A (zh) | 页面访问控制方法和相关装置及系统 | |
CN113961919A (zh) | 恶意软件检测方法和装置 | |
CN106055375A (zh) | 应用程序安装方法及装置 | |
CN105760761A (zh) | 软件行为分析方法和装置 | |
CN106709281A (zh) | 补丁发放和获取方法、装置 | |
CN113434254B (zh) | 客户端部署方法、装置、计算机设备及存储介质 | |
CN106033551A (zh) | 数据解析方法、装置及系统 | |
CN110580171A (zh) | App分类方法、相关装置及产品 | |
CN104484598A (zh) | 一种保护智能终端安全的方法和装置 | |
US20190236269A1 (en) | Detecting third party software elements | |
CN112016922A (zh) | 应用于区块链金融和在线支付的信息安全防护方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |