一种APK加固保护方法及系统技术方案

技术编号:14859946 阅读:34 留言:0更新日期:2017-03-19 12:16
本发明专利技术实施例提供一种APK加固保护方法,其特征在于,包括:获取待加固APK;反编译所述待加固APK,提取所述待加固APK中需要保护的指令代码;利用自定义编码替换所述待加固APK中需要保护的指令代码,所述自定义编码包括计算机无法执行的编码数据,对所述待加固APK进行加固保护。本发明专利技术实施例还提供一种APK加固保护系统,实现对APK的加固保护,有效避免了APK被逆向分析、篡改和二次打包。

【技术实现步骤摘要】

本专利技术涉及移动终端的应用安全领域,具体涉及一种APK加固保护的方法及系统。
技术介绍
Android系统的快速发展以及设备的高速增长,产生了大量的第三方应用程序。由于Android的开源,逆向工具很多,导致盗版、重打包现象严重,这些现状又催生了对应用保护的需求,进而也出现了很多厂商提供apk(“APK”是AndroidPackage的缩写,即Android应用安装包)保护服务。现有的apk加固厂商有奇虎360、梆梆、APKProtect、爱加密、百度、腾讯、阿里巴巴等,这些厂商采用的方案主要分为3种:第一种是对整个Dex文件进行完整加密;第二种是运行时对Dex文件做字节码变形,防止直接Dump完整的Dex,现有方式不能很好的自定义需要做字节码变形的函数;第三种是将前两种方案混合使用。因为上述三种方案在apk运行的内存中均存在完整的Dex映像,所以可以被完整的还原出来,加上android开源,故被保护的应用仍然容易遭受内存还原攻击。
技术实现思路
有鉴于此,本专利技术实施例提供了一种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进行加固保护时,生成跳转地址为VMP入口的跳转指令,并在所述VMP入口保存所述需要保护的指令代码;当所述加固保护后的APK的工作运行的环境存在异常时,执行所述跳转指令,跳转至所述VMP入口,获取所述需要保护的指令代码,利用所述需要保护的指令代码替换所述加固保护后的APK中的所述计算机无法执行的编码,取消所述加固保护后的APK的加固保护。通过本专利技术实施例方法,实现了对有逆向分析、二次打包的风险的APK的原加固方案的取消,进一步地方便将新的加固方案应用在APK中,有效防止了APK被逆向分析和二次打包。在一些实施方式中,所述监视并判断所述加固保护后的APK的工作运行的环境是否存在异常包括:获取所述加固保护后的APK工作运行的过程中所生成的日志文件信息;查询所述日志文件信息中是否存在所述指令转换表的未授权访问的记录,若存在未授权访问的记录,则确定所述加固保护后的APK的工作运行的环境存在异常。通过本专利技术实施例方法实现了实时监测指令转换表的私密性,保障了指令转换表的安全性,进一步保障了所述APK的加固保护方案的可靠性;当不法分子查询调用所述指令转换表时,APK加固厂商后台能够及时获知所述指令转换表是否可能被不法分子非法访问,有利于APK加固厂商在后台及时作出相应的应对策略,极大降低了APK加固方案被破解所造成的损失。在一些实施方式中,在所述指令代码转换为编码数据之前还包括:接收自云端服务器分发的指令转换表或向云端服务器请求下载以获得指令转换表。通过本专利技术实施例方法云端下发加固保护方案,提高了加固保护APK的效率,方便了APK加固厂商将已迭代更新的加固方案的发布实施;当出现APK工作环境异常时,可以及时通过云端下载新的指令转换表以更新APK的加固方案,保障了APK加方案的安全可靠性。在一些实施方式中,所述指令转换表包括与Dex文件相关的指令代码和相应的计算机无法执行的十六进制字节码。本专利技术实施例还提供一种APK加固保护系统,其特征在于,包括:APK获取单元,用于获取待加固APK;反编译单元,用于反编译所述待加固APK,提取所述待加固APK中需要保护的指令代码;加固保护单元,用于利用计算机无法执行的自定义编码数据和相对应的指令代码的指令转换表将所述待加固APK中所述需要保护的指令代码替换为编码数据,对所述待加固APK进行加固保护。通过本专利技术实施例系统,实现了将待加固APK中所需要保护的指令进行指令虚拟化处理,在加固完成后的APK运行的过程中在APK的内存中不会存在完整的关键代码的映像,实现对APK的加固保护,有效防止了APK被逆向分析、篡改、反编译、二次打包,防止APK被嵌入各类病毒、广告等恶意代码。在一些实施方式中,所述加固保护单元用于根据包括有计算机无法执行的编码数据和相对应的指令代码的指令转换表将所述待加固APK中所述需要保护的指令代码替换为编码数据,对所述待加固APK进行加固保护。通过本专利技术实施例系统,利用自定义的编码数据和指令代码之间的转换关系完成对APK的加固保护,使得当不法分子不知晓编码数据和指令代码之间的转换关系的情况下,几乎不可能完成对APK关键代码本文档来自技高网...

【技术保护点】
一种APK加固保护方法,其特征在于,包括:获取待加固APK;反编译所述待加固APK,提取所述待加固APK中需要保护的指令代码;利用计算机无法执行的自定义编码替换所述待加固APK中需要保护的指令代码,对所述待加固APK进行加固保护。

【技术特征摘要】
1.一种APK加固保护方法,其特征在于,包括:
获取待加固APK;
反编译所述待加固APK,提取所述待加固APK中需要保护的指令代
码;
利用计算机无法执行的自定义编码替换所述待加固APK中需要保护
的指令代码,对所述待加固APK进行加固保护。
2.根据权利要求1所述的方法,其特征在于,所述利用计算机无法
执行的自定义编码替换所述待加固APK中需要保护的指令代码,对所述
待加固APK进行加固保护包括:
根据包括有计算机无法执行的编码数据和相对应的指令代码的指令
转换表将所述待加固APK中所述需要保护的指令代码替换为编码数据,
对所述待加固APK进行加固保护。
3.根据权利要求2所述的方法,其特征在于,在对所述待加固APK
进行加固保护之后还包括:
监视并判断所述加固保护后的APK的工作运行的环境是否存在异常;
当所述加固保护后的APK的工作运行的环境存在异常时,对所述加
固保护后的APK取消加固保护,重新根据包括有指令代码和相对应的计
算机无法执行的另一编码数据的另一指令转换表将所述取消加固保护的
APK中所述需要保护的指令代码转换为计算机无法执行的另一编码数据,
以进行重新加固保护。
4.根据权利要求3所述的方法,其特征在于,所述监视并判断所述
加固保护后的APK的工作运行的环境是否存在异常包括:
获取所述加固保护后的APK工作运行的过程中所生成的日志文件信
息;
查询所述日志文件信息中是否存在所述指令转换表的未授权访问的
记录,若存在未授权访问的记录,则确定所述加固保护后的APK的工作
运行的环境存在异常。
5.根据权利要求2或3所述的方法,其特征在于,在所述指令代码
转换为编码数据之前还包括:接收自云端服务器分发的指令转换表或向云
端服务器请求下载以获得指令...

【专利技术属性】
技术研发人员:霍亮周亚金徐伟
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1