[发明专利]一种APK的加固方法和装置,及动态加载方法和装置在审
申请号: | 201611139477.3 | 申请日: | 2016-12-12 |
公开(公告)号: | CN106845167A | 公开(公告)日: | 2017-06-13 |
发明(设计)人: | 刘敏 | 申请(专利权)人: | 北京奇虎科技有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 北京天悦专利代理事务所(普通合伙)11311 | 代理人: | 田明,张海秀 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 apk 加固 方法 装置 动态 加载 | ||
技术领域
本发明涉及终端应用安全技术领域,特别涉及一种APK的加固方法和装置、以及动态加载方法和装置。
背景技术
APK(Android Package)即安卓Android安装包,是Android操作系统上的应用程序安装文件,该应用安装文件由安装文件打包工具根据多个文件生成,生成APK的文件一般采用java编程语言编写,用户将通过安装文件打包工具生成的APK文件上传到安卓模拟器或安卓操作系统的用户设备中执行即可安装。
随着Android移动终端平台的日益发展,第三方应用程序大量涌现,对应用的盗版和重打包现象日益严重。由于Android平台采用Java语言开发,导致APK中的代码易于被反编译,通过反编译APK文件,进行代码的分析、修改或者插入,再重新签名打包为新的APK文件,以达到改变程序原有行为的目的,APK的篡改行为严重损害了应用程序开发商的利益和积极性,而利用APK篡改技术,通过加入恶意代码使得Android用户面临隐私泄露和财产损失的危险,严重影响了用户的应用安全。因此,开发者们对于Android程序代码的加固防护也越来越关注。
现有安卓软件安装包APK的加固方法中,对APK中的某些重要数据进行加密,将加密数据以文件形式存放在资源存放目录res目录下或者额外资源目录assets目录下,程序执行执行过程中去对应目录下寻找这个加密文件并加载,从而完APK文件的运行,但是该种加密数据的存放方式隐蔽性差,容易被发现,导致APK被破解的风险仍然较大。
发明内容
针对现有技术中存在的缺陷,本发明实施例的目的在于提供一种能够克服上述问题或者至少能够部分地解决上述问题的一种APK的加固方法和装置、以及动态加载方法和装置。
为实现上述目的,本发明的一个实施例中提供了一种APK文件的加固方法,所述加固方法包括:
一种APK文件的加固方法,其特征在于,包括:
获取待加固的原APK中需要保护的原数据;
将所述原数据进行加密处理,得到加密数据;
对所述原APK进行加固处理,生成目标APK,其中,所述加密数据以文件形式存储于所述目标APK的预设位置。
优选的,如上所述的加固方法,所述预设位置为目标APK的classes.dex文件中的位置。
优选的,如上所述的加固方法,所述预设位置为目标APK的classes.dex文件的文件头和/或数据区的N个指定位置,N≥1。
优选的,如上所述的加固方法,所述N=1,所述指定位置为所述数据区的头部或尾部。
优选的,如上所述的加固方法,所述N=2;所述加密数据包括第一加密数据和第二加密数据;
所述指定位置包括第一指定位置和第二指定位置,第一加密数据在目标APK的classes.dex文件中的位置为所述第一指定位置,第二加密数据在目标APK的classes.dex文件中的位置为所述第二指定位置。
优选的,如上所述的加固方法,所述第一指定位置为所述数据区的头部,所述第二指定位置为所述数据区的尾部。
优选的,如上所述的加固方法,所述原数据为原APK中的非classes.dex文件中的数据;
所述对所述原APK进行加固处理,生成目标APK,包括:
根据加密数据在目标APK中的所述预设位置,将加密数据添加到原APK中的对应位置;
将添加后的原APK中除所述原数据之外的其它文件进行重新打包签名,生成目标APK。
优选的,如上所述的加固方法,若所述预设位置为目标APK的classes.dex文件中的位置,所述将添加后的原APK中除所述原数据之外的其它文件进行重新打包签名,生成目标APK,包括:
重新计算并更新添加加密数据后的原APK的classes.dex文件的文件头信息,得到更新后的第一classes.dex文件;
将第一classes.dex文件和原APK的除所述原数据之外的其它文件进行重新打包签名,生成目标APK。
优选的,如上所述的加固方法,所述原数据为原APK的classes.dex文件中的数据;
所述对所述原APK进行加固处理,生成目标APK,包括:
记录原数据在原APK的classes.dex文件中的原位置信息;
根据加密数据在目标APK中的所述预设位置,将加密数据和所述原位置信息添加到原APK中的的对应位置;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司,未经北京奇虎科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611139477.3/2.html,转载请声明来源钻瓜专利网。