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

文档序号:9238143阅读:来源:国知局
校验值存储在服务器上,同样,该校验值可以是MD5值,后续再接收到移动终端102发送过来的校验情况的情况下,通过对比第一校验值和第二校验值来确定待校验APK文件包是否合法。
[0054]对于APK文件包,可以用7zip之类的解压软件直接打开,如果想要对内容进行修改,可以用dex2jar把classes, dex反编译成jar文件,然后用jd_gui打开反编译成出的jar文件,找出需要修改的地方,最后用apktool反编译整个apk包,采用此种方式可以对APK文件包进行功能的注入,对代码进行增加(如:非法注入广告)、删除(如:功能删减)和改动(如,设置钓鱼网站)等。
[0055]打开后的res文件夹里是资源文件,APK文件包程序所涉及的图片、背景音乐等都在这里,对程序进行汉化基本上也在是这里修改,通过修改res文件夹里的内容可以对APK文件包进行个性化修改,修改后用apktool反编译整个apk包即可。
[0056]本发明实施例所提供的APK文件包的校验装置,通过对APK文件包的组成文件进行读取,并基于读取到的内容所计算处校验值进行校验,实现了从APK文件包的结构入手,对其组成的内容进行分析,这样一旦APK文件包被非法篡改,即便签名文件未改变,仍然会造成计算出的校验值与服务器上所存储的未被篡改前的校验值不相同,能够准确校验值APK文件包不合法,避免了现有技术中基于APK文件包中的签名文件Meta-1nf进行校验容易导致校验的安全性降低的弊端,解决了现有技术中对APK文件包进行校验的安全性较低的技术问题,进而达到提高APK文件包校验准确度的效果。
[0057]具体地,读取单元20主要包括查找子单元和第一读取子单元,对组成文件的内容进行读取过程中,查找子单元可以先从组成文件中查找第二目标文件,其中,第二目标文件的内容不允许修改,即,查找到组成文件中不允许修改的部分,将这部分文件作为第二目标文件,然后由第一读取子单元读取第二目标文件的内容。
[0058]通过对组成文件中内容不允许修改的文件进行查找,以排除掉内容允许被修改的部分,对允许修改部分的内容不再进行读取和写入,后续进行MD5值计算过程中,也不涉及对该部分内容,实现了减少进行MD5计算时的数据量,以提高计算速度,进而达到了提高校验效率的效果。
[0059]优选地,写入单元30主要包括写入子单元,该写入子单元主要用于按照读取顺序依次将读取到的内容写入第一目标文件。服务器104在对目标APK文件包的校验值进行计算过程中,同样是读取目标APK文件包的组成文件的内容,并按照读取顺序将读取到的内容写入CAPK文件,然后对CAPK文件的MD5值进行计算。
[0060]通过控制移动终端按照读取顺序依次将读取到的内容写入第一目标文件,实现了保证移动终端侧写入内容与服务器侧写入内容的一致性,进而避免因为写入内容的不一致所造成的校验值不相同,出现将合法的待校验APK文件包误校验为不合法,达到提高校验精确度的效果。
[0061]此外,读取单元20还包括第二读取子单元,在进行内容读取过程中,第二读取子单元用于对组成文件或第二目标文件的二进制内容进行读取。然后,以二进制的数据格式,将读取到的内容写入到第一目标文件中。相应地,写入单元30以二进制的数据格式,将读取到的内容写入到第一目标文件中。
[0062]进一步优选地,本发明实施例所提供的APK文件包的校验装置还包括排序单元,在获取单元10获取待校验APK文件包的组成文件之后,并且在读取单元20读取组成文件的内容之前,排序单元用于按照组成文件的文件名对组成文件进行排序。服务器104在对目标APK文件包的校验值进行计算过程中,同样是按照组成文件的文件名对目标APK文件包的组成文件进行排序,后续再进行内容的读取和MD5值的计算。
[0063]通过对组成文件进行排序,然后基于排序的组成文件进行内容的读取和MD5值的计算,同样是为了保证移动终端侧写入内容与服务器侧写入内容的一致性,进而避免因为写入内容的不一致所造成的校验值不相同,出现将合法的待校验APK文件包误校验为不合法,达到进一步提尚校验精确度的效果。
[0064]其中,本发明实施例所提供的APK文件包的校验装置还包括判断单元、第一确定单元和第二确定单元,判断单元用于判断第一校验值和第二校验值是否相同;第一确定单元用于在判断单元判断出第一校验值和第二校验值相同的情况下,确定校验结果为表示待校验APK文件包合法的结果;第一确定单元用于在判断单元判断出第一校验值和第二校验值不相同的情况下,确定校验结果为表示待校验APK文件包非法的结果。
[0065]具体地,移动终端对待校验APK文件包进行分析处理,读取出二进制内容,并依次写入CAPK文件,然后计算出第一校验值;服务器对与待校验APK文件包具有相同标识信息的目标APK文件包进行分析处理,读取出二进制内容,并依次写入CAPK文件,最后计算出第二校验值,然后通过比较第一校验值和第二校验值是否相同,来确定待校验APK文件包合法与否。
[0066]实施例3
[0067]根据本发明实施例,还提供了一种用于实施上述APK文件包校验方法的移动终端,如图6所示,该移动终端主要包括处理器601、显示器602、数据接口 603、存储器604和网络接口 605,其中:
[0068]数据接口 603主要通过数据传输的方式将服务器104发布的APK文件包传输给处理器601。
[0069]网络接口 605则主要用于与服务器进行网络通信,通过网络通信方式将服务器104发布的APK文件包传输给处理器401,或者将移动终端的相关请求发送至服务器。
[0070]存储器604主要用于存储APK文件包校验过程中的中间文件。
[0071]显示器602主要用于显示APK文件包的校验结果。
[0072]处理器601主要用于执行如下操作:
[0073]获取待校验APK文件包的组成文件;读取组成文件的内容;将读取到的内容写入第一目标文件;计算第一目标文件的第一校验值;发送包括第一校验值的校验请求至发布待校验APK文件包的服务器;以及接收校验结果,其中,服务器在接收到校验请求的情况下,根据第一校验值和第二校验值对待校验APK文件包进行校验,并返回校验结果,第二校验值为服务器存储的目标APK文件包的校验值,待校验APK文件包和目标APK文件包具有相同的标识信息。
[0074]处理器601还用于从组成文件中查找第二目标文件,其中,第二目标文件的内容不允许修改;以及读取第二目标文件的内容。
[0075]处理器601还用于按照读取顺序依次将读取到的内容写入第一目标文件。
[0076]处理器601还用于读取组成文件的二进制内容。
[0077]处理器601还用于按照组成文件的文件名对组成文件进行排序。
[0078]可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
[0079]实施例4
[0080]本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于存储本发明实施例的APK文件包的校验方法的程序代码。
[0081]可选地,在本实施例中,上述存储介质可以位于移动通信网络、广域网、城域网或局域网的网络中的多个网络设备中的至少一个网络设备。
[0082]可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
[0083]SI,获取待校验APK文件包的组成文件。
[0084]S2,读取组成文件的内容。
[0085]S3,将读取到的内容写入第一目标文件。
[0086]S4,计算第一目标文件的第一校验值。
[0087]S5,发送包括第一校验值的校验请求至发布待校验APK文件包的服务器。
[0088]S6,接收校验结果,其中,服务器在接收到校验请求的情况下,根据第一校验值和第二校验值对待校验APK文件包进行校验,并返回校验结果,第二校验值为服务器存储的目标APK文件包的校验值,待校验APK文件包和目标APK文件包具有相同的标识信息。
[0089]可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1