[发明专利]一种APK的加固方法和装置,及动态加载方法和装置在审
申请号: | 201611139477.3 | 申请日: | 2016-12-12 |
公开(公告)号: | CN106845167A | 公开(公告)日: | 2017-06-13 |
发明(设计)人: | 刘敏 | 申请(专利权)人: | 北京奇虎科技有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 北京天悦专利代理事务所(普通合伙)11311 | 代理人: | 田明,张海秀 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 apk 加固 方法 装置 动态 加载 | ||
1.一种APK文件的加固方法,其特征在于,包括:
获取待加固的原APK中需要保护的原数据;
将所述原数据进行加密处理,得到加密数据;
对所述原APK进行加固处理,生成目标APK,其中,所述加密数据以文件形式存储于所述目标APK的预设位置。
2.根据权利要求1所述的加固方法,其特征在于,所述预设位置为目标APK的classes.dex文件中的位置。
3.根据权利要求2所述的加固方法,其特征在于,所述预设位置为目标APK的classes.dex文件的文件头和/或数据区的N个指定位置,N≥1。
4.根据权利要求3所述的加固方法,其特征在于:所述N=1,所述指定位置为所述数据区的头部或尾部。
5.根据权利要求3所述的加固方法,其特征在于,所述N=2;所述加密数据包括第一加密数据和第二加密数据;
所述指定位置包括第一指定位置和第二指定位置,第一加密数据在目标APK的classes.dex文件中的位置为所述第一指定位置,第二加密数据在目标APK的classes.dex文件中的位置为所述第二指定位置。
6.根据权利要求1所述的加固方法,其特征在于:所述原数据为原APK中的非classes.dex文件中的数据;
所述对所述原APK进行加固处理,生成目标APK,包括:
根据加密数据在目标APK中的所述预设位置,将加密数据添加到原APK中的对应位置;
将添加后的原APK中除所述原数据之外的其它文件进行重新打包签名,生成目标APK。
7.根据权利要求1所述的加固方法,其特征在于,所述原数据为原APK的classes.dex文件中的数据;
所述对所述原APK进行加固处理,生成目标APK,包括:
记录原数据在原APK的classes.dex文件中的原位置信息;
根据加密数据在目标APK中的所述预设位置,将加密数据和所述原位置信息添加到原APK中的的对应位置;
删除原APK的classes.dex文件中的所述原数据,得到第二classes.dex文件;
重新计算并更新第二classes.dex文件的文件头信息,得到第三classes.dex文件;
将第三classes.dex文件和原APK的除其classes.dex文件外的其它文件进行重新打包签名,生成目标APK。
8.一种APK文件的加固装置,其特征在于,包括:
加密数据生成模块,用于获取待加固的原APK中需要保护的原数据,将所述原数据进行加密处理,得到加密数据;
目标APK生成模块,用于对所述原APK进行加固处理,生成目标APK,其中,所述加密数据以文件形式存储于所述目标APK的预设位置。
9.一种加固APK的动态加载方法,其特征在于,所述加固APK为采用权利要求1-7中任一APK文件的加固方法生成的目标APK,所述动态加载方法包括:
解压所述目标APK;
根据加密数据在目标APK中的存储位置,提取所述加密数据,并对加密数据进行解密得到原数据;
根据所述原数据和解压后的目标APK,通过dex类加载器对目标APK的classes.dex文件的进行动态加载。
10.一种加固APK的动态加载装置,其特征在于,包括:
目标APK解压模块,用于解压所述目标APK;
原数据提取模块,用于根据加密数据在目标APK中的存储位置,提取所述加密数据,并对加密数据进行解密得到原数据;
APK动态加载模块,用于根据所述原数据和解压后的目标APK,通过dex类加载器对目标APK的classes.dex文件的进行动态加载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司,未经北京奇虎科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611139477.3/1.html,转载请声明来源钻瓜专利网。