Apk文件包的校验方法和装置的制造方法_2

文档序号:9238143阅读:来源:国知局
验值对待校验APK文件包进行校验,并返回校验结果,第二校验值为服务器存储的目标APK文件包的校验值,待校验APK文件包和目标APK文件包具有相同的标识信息,即,服务器在将某个APK文件包括发布至移动终端102之前,会先计算出该APK文件包的校验值,并将计算出的校验值存储在服务器上,同样,该校验值可以是MD5值,后续再接收到移动终端102发送过来的校验情况的情况下,通过对比第一校验值和第二校验值来确定待校验APK文件包是否合法。
[0031]对于APK文件包,可以用7zip之类的解压软件直接打开,如果想要对内容进行修改,可以用dex2jar把classes, dex反编译成jar文件,然后用jd_gui打开反编译成出的jar文件,找出需要修改的地方,最后用apktool反编译整个apk包,采用此种方式可以对APK文件包进行功能的注入,对代码进行增加(如:非法注入广告)、删除(如:功能删减)和改动(如,设置钓鱼网站)等。
[0032]打开后的res文件夹里是资源文件,APK文件包程序所涉及的图片、背景音乐等都在这里,对程序进行汉化基本上也在是这里修改,通过修改res文件夹里的内容可以对APK文件包进行个性化修改,修改后用apktool反编译整个apk包即可。
[0033]本发明实施例所提供的APK文件包的校验方法,通过对APK文件包的组成文件进行读取,并基于读取到的内容所计算处校验值进行校验,实现了从APK文件包的结构入手,对其组成的内容进行分析,这样一旦APK文件包被非法篡改,即便签名文件未改变,仍然会造成计算出的校验值与服务器上所存储的未被篡改前的校验值不相同,能够准确校验值APK文件包不合法,避免了现有技术中基于APK文件包中的签名文件Meta-1nf进行校验容易导致校验的安全性降低的弊端,解决了现有技术中对APK文件包进行校验的安全性较低的技术问题,进而达到提高APK文件包校验准确度的效果。
[0034]具体地,在本发明实施例中,对组成文件的内容进行读取过程中,可以先从组成文件中查找第二目标文件,其中,第二目标文件的内容不允许修改,即,查找到组成文件中不允许修改的部分,将这部分文件作为第二目标文件,然后读取第二目标文件的内容。
[0035]通过对组成文件中内容不允许修改的文件进行查找,以排除掉内容允许被修改的部分,对允许修改部分的内容不再进行读取和写入,后续进行MD5值计算过程中,也不涉及对该部分内容,实现了减少进行MD5计算时的数据量,以提高计算速度,进而达到了提高校验效率的效果。
[0036]优选地,在读取到的内容写入第一目标文件过程中,可以按照读取顺序依次将读取到的内容写入第一目标文件。服务器104在对目标APK文件包的校验值进行计算过程中,同样是读取目标APK文件包的组成文件的内容,并按照读取顺序将读取到的内容写入CAPK文件,然后对CAPK文件的MD5值进行计算。
[0037]通过控制移动终端按照读取顺序依次将读取到的内容写入第一目标文件,实现了保证移动终端侧写入内容与服务器侧写入内容的一致性,进而避免因为写入内容的不一致所造成的校验值不相同,出现将合法的待校验APK文件包误校验为不合法,达到提高校验精确度的效果。
[0038]在本发明实施例中,读取到的内容可以是二进制内容,S卩,在进行内容读取过程中,是对组成文件或第二目标文件的二进制内容进行读取。然后,以二进制的数据格式,将读取到的内容写入到第一目标文件中。
[0039]进一步优选地,在获取待校验APK文件包的组成文件之后,并且在读取组成文件的内容之前,本发明实施例的校验方法还包括:按照组成文件的文件名对组成文件进行排序。服务器104在对目标APK文件包的校验值进行计算过程中,同样是按照组成文件的文件名对目标APK文件包的组成文件进行排序,后续再进行内容的读取和MD5值的计算。
[0040]通过对组成文件进行排序,然后基于排序的组成文件进行内容的读取和MD5值的计算,同样是为了保证移动终端侧写入内容与服务器侧写入内容的一致性,进而避免因为写入内容的不一致所造成的校验值不相同,出现将合法的待校验APK文件包误校验为不合法,达到进一步提尚校验精确度的效果。
[0041]其中,服务器在接收到校验请求的情况下,根据第一校验值和第二校验值对待校验APK文件包进行校验,并返回校验结果主要是判断第一校验值和第二校验值是否相同,在判断出第一校验值和第二校验值相同的情况下,确定校验结果为表示待校验APK文件包合法的结果,在判断出第一校验值和第二校验值不相同的情况下,确定校验结果为表示待校验APK文件包非法的结果。
[0042]具体地,图4是根据本发明实施例的APK文件包的校验方法的校验原理图,如图4所示,移动终端对待校验APK文件包进行分析处理,读取出二进制内容,并依次写入CAPK文件,然后计算出第一校验值;服务器对与待校验APK文件包具有相同标识信息的目标APK文件包进行分析处理,读取出二进制内容,并依次写入CAPK文件,最后计算出第二校验值,然后通过比较第一校验值和第二校验值是否相同,来确定待校验APK文件包合法与否。
[0043]需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0044]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0045]实施例2
[0046]根据本发明实施例,还提供了一种用于实施上述APK文件包的校验方法的APK文件包的校验装置,该APK文件包的校验装置主要用于执行本发明实施例上述内容所提供的APK文件包的校验方法,以下对本发明实施例所提供的APK文件包的校验装置做具体介绍:
[0047]图5是根据本发明实施例的APK文件包的校验装置的示意图,如图5所示,该APK文件包的校验装置主要包括获取单元10、读取单元20、写入单元30、计算单元40、发送单元50和接收单元60,其中:
[0048]获取单元10用于获取待校验APK文件包的组成文件,图3是根据本发明实施例的APK文件包的校验方法中APK文件包的组成示意图,如图3所示,APK文件包的组成文件主要分成两部分,一是不允许修改的部分,一是允许出现差异的部分,也即是允许修改的部分,其中,不允许修改的部分是影响APK文件包安全的主要因素,这部分内容主要包括代码(包括应用引用的库文件Lib和程序编译后的代码Classes, dex)、资源(包括存放应用程序资源的Assets和资源文件Res)和配置(包括配置文件AndroidManifest.xml)。在移动终端102首次启动待校验APK文件包的情况下,对待校验APK文件包的组成文件进行获取。
[0049]读取单元20用于读取组成文件的内容。
[0050]写入单元30用于将读取到的内容写入第一目标文件,在本发明实施例中,第一目标文件可以是CAPK格式的文件。
[0051]计算单元40用于计算第一目标文件的第一校验值,其中,第一校验值可以是第一目标文件的MD5,具体计算方式可以采用现有技术中任一种计算MD5值的计算方式。
[0052]发送单元50用于发送包括第一校验值的校验请求至发布待校验APK文件包的服务器。
[0053]接收单元60用于接收校验结果,其中,服务器在接收到校验请求的情况下,根据第一校验值和第二校验值对待校验APK文件包进行校验,并返回校验结果,第二校验值为服务器存储的目标APK文件包的校验值,待校验APK文件包和目标APK文件包具有相同的标识信息,即,服务器在将某个APK文件包括发布至移动终端102之前,会先计算出该APK文件包的校验值,并将计算出的
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1