[发明专利]一种Jar文件的虚拟化保护方法、终端及存储介质在审
申请号: | 202010776425.7 | 申请日: | 2020-08-05 |
公开(公告)号: | CN112052433A | 公开(公告)日: | 2020-12-08 |
发明(设计)人: | 李鹏飞;冉山川 | 申请(专利权)人: | 北京智游网安科技有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14;G06F21/62 |
代理公司: | 深圳市君胜知识产权代理事务所(普通合伙) 44268 | 代理人: | 陈专 |
地址: | 100000 北京市海淀区东北旺西路8*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 jar 文件 虚拟 保护 方法 终端 存储 介质 | ||
1.一种Jar文件的虚拟化保护方法,其特征在于,所述Jar文件的虚拟化保护方法包括:
将Jar文件进行解压,读取class二进制字节码文件,解析所述class二进制字节码文件,提取每个方法的二进制指令;
生成随机自定义指令规则置换表,对二进制指令中的操作码和操作数进行等价替换,翻译为只有自定义虚拟机解释器引擎能够识别的指令;
修改class字节码,将被加密的方法代码清空,注入自定义虚拟机的入口方法和自定义虚拟机引擎,生成加密后的Jar文件。
2.根据权利要求1所述的Jar文件的虚拟化保护方法,其特征在于,所述将Jar文件进行解压,读取class二进制字节码文件,解析所述class二进制字节码文件,提取每个方法的二进制指令,包括:
解压读取所述Jar文件中的class二进制字节码文件;
对所述class二进制字节码文件的所有class二进制字节码中所有方法对应的代码段指令进行提取。
3.根据权利要求2所述的Jar文件的虚拟化保护方法,其特征在于,所述生成随机自定义指令规则置换表,对二进制指令中的操作码和操作数进行等价替换,翻译为只有自定义虚拟机解释器引擎能够识别的指令,包括:
解析提取后的代码段指令,通过加密工具生成随机自定义指令规则置换表;
通过随机自定义指令规则置换表对代码段指令的操作码和操作数进行等价替换,翻译为只有自定义虚拟机解析器能够识别的指令,并保存为资源文件。
4.根据权利要求3所述的Jar文件的虚拟化保护方法,其特征在于,所述随机自定义指令规则置换表和class字节码默认指令一一对应。
5.根据权利要求3所述的Jar文件的虚拟化保护方法,其特征在于,所述翻译指根据加密工具生成的随机自定义指令规则置换表,将解析查找到的原方法指令转换为所述随机自定义指令规则置换表中对应的指令。
6.根据权利要求3所述的Jar文件的虚拟化保护方法,其特征在于,所述修改class字节码,将被加密的方法代码清空,注入自定义虚拟机的入口方法和自定义虚拟机引擎,生成加密后的Jar文件,包括:
清空Jar文件中所有class字节码文件方法的代码段指令,并在方法中插入调用自定义解析器的入口方法;
在Jar文件中添加生成的自定义格式的资源文件;
根据所述随机自定义指令规则置换表,生成对应虚拟机解析器引擎,实现自定义指令和虚拟机引擎配对,生成加密后的Jar文件。
7.根据权利要求1所述的Jar文件的虚拟化保护方法,其特征在于,每次加密时的所述随机自定义指令规则置换表都是随机生成的。
8.根据权利要求1所述的Jar文件的虚拟化保护方法,其特征在于,在Jar文件加密过程,输入Jar包进行加固保护,加固后下载的仍然是Jar包,不改变Jar包调用及使用方式。
9.一种终端,其特征在于,所述终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的Jar文件的虚拟化保护程序,所述Jar文件的虚拟化保护程序被所述处理器执行时实现如权利要求1-8任一项所述的Jar文件的虚拟化保护方法的步骤。
10.一种存储介质,其特征在于,所述存储介质存储有Jar文件的虚拟化保护程序,所述Jar文件的虚拟化保护程序被处理器执行时实现如权利要求1-8任一项所述的Jar文件的虚拟化保护方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京智游网安科技有限公司,未经北京智游网安科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010776425.7/1.html,转载请声明来源钻瓜专利网。