[发明专利]一种虚拟化加密方法、终端及存储介质在审
申请号: | 202010776745.2 | 申请日: | 2020-08-05 |
公开(公告)号: | CN112052462A | 公开(公告)日: | 2020-12-08 |
发明(设计)人: | 李鹏飞;冉山川 | 申请(专利权)人: | 北京智游网安科技有限公司 |
主分类号: | G06F21/60 | 分类号: | G06F21/60;G06F21/62;G06F21/53 |
代理公司: | 深圳市君胜知识产权代理事务所(普通合伙) 44268 | 代理人: | 陈专 |
地址: | 100000 北京市海淀区东北旺西路8*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 虚拟 加密 方法 终端 存储 介质 | ||
1.一种虚拟化加密方法,其特征在于,所述虚拟化加密方法包括:
将Jar文件转为DEX文件,提取所述DEX文件中的二进制指令,并提取操作数引用的数据,解除提取指令对所述DEX文件的依赖;
生成随机自定义规则置换表,对提取所述二进制指令中的操作码和操作数进行等价替换,翻译为自定义虚拟机解释器引擎能够识别的指令;
解析所述Jar文件中的class文件,将被加密的方法代码清空,注入自定义虚拟机的入口方法,生成加密后的Jar文件。
2.根据权利要求1所述的虚拟化加密方法,其特征在于,所述将Jar文件转为DEX文件,包括:
通过加密工具将原SDK中的Jar文件拷贝两份,分别为第一Jar文件和第二Jar文件;
将所述第二Jar文件转为DEX文件。
3.根据权利要求2所述的虚拟化加密方法,其特征在于,所述虚拟化加密方法还包括:
通过ASM class二进制字节码处理工具解析所述第一Jar文件中的class文件,清除class文件中被加密方法的代码,并注入自定义虚拟机引擎的入口方法;
如果是Android AAR格式的SDK,则先从AAR中解压出Jar再进行加密操作,生成加密后的Jar文件。
4.根据权利要求3所述的虚拟化加密方法,其特征在于,所述虚拟化加密方法还包括:
通过Dx工具将所述第二Jar文件转为Android dalvik虚拟机支持的DEX格式。
5.根据权利要求4所述的虚拟化加密方法,其特征在于,所述虚拟化加密方法还包括:
根据DEX二进制文件结构,遍历获取DEX文件中的所有方法,提取出对应代码段的二进制指令数据;
通过加密工具生成随机自定义规则置换表,把二进制指令的操作码替换为只有自定义虚拟机能够识别的指令;
其中,所述操作码用于标识指令的具体动作。
6.根据权利要求5所述的虚拟化加密方法,其特征在于,所述虚拟化加密方法还包括:
提取Dex文件中String表、Method表和Type表,并重建索引,保存到指令文件中;
解析指令的操作数,如果操作数重建表的索引值,需要更新操作数,指向指令文件中新建的索引值,使得自定义虚拟机指令运行不再依赖DEX文件中存储数据,完成与Dex文件的解耦操作。
7.根据权利要求6所述的虚拟化加密方法,其特征在于,所述虚拟化加密方法还包括:
将完成虚拟化加密后的二进制指令,合并在指令文件中,生成完整的自定义虚拟机解析引擎,以识别指令文件。
8.根据权利要求6所述的虚拟化加密方法,其特征在于,所述将完成虚拟化加密后的二进制指令,合并在指令文件中,生成完整的自定义虚拟机解析引擎,以识别指令文件,之后还包括:
生成加密后的第一Jar文件、虚拟机解析器引擎和自定义指令文件。
9.一种终端,其特征在于,所述终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的虚拟化加密程序,所述虚拟化加密程序被所述处理器执行时实现如权利要求1-8任一项所述的虚拟化加密方法的步骤。
10.一种存储介质,其特征在于,所述存储介质存储有虚拟化加密程序,所述虚拟化加密程序被处理器执行时实现如权利要求1-8任一项所述的虚拟化加密方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京智游网安科技有限公司,未经北京智游网安科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010776745.2/1.html,转载请声明来源钻瓜专利网。