[发明专利]基于虚拟机的代码保护方法及装置、电子设备、存储介质有效
申请号: | 201710624871.4 | 申请日: | 2017-07-27 |
公开(公告)号: | CN108345773B | 公开(公告)日: | 2020-09-08 |
发明(设计)人: | 汪德嘉;华保健;邵根波;赵迪;刘庆川 | 申请(专利权)人: | 江苏通付盾信息安全技术有限公司;江苏通付盾科技有限公司 |
主分类号: | G06F21/12 | 分类号: | G06F21/12;G06F8/53 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 江苏省苏州市工业园区东*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 虚拟机 代码 保护 方法 装置 电子设备 存储 介质 | ||
1.一种基于虚拟机的代码保护方法,其特征在于,包括:
解析程序原文件,将所述程序中待保护的代码进行反编译,得到第一抽象语法树;
使用预设编码表将所述第一抽象语法树翻译生成第二抽象语法树;其中,所述第二抽象语法树由虚拟机指令构成;所述预设编码表为多个,每个编码表的编码方式不同;对不同的代码的第一抽象语法树翻译时使用不同的预设编码表,或者,对相同的代码的第一抽象语法树在每次翻译时使用不同的预设编码表;所述预设编码表为随机生成的;
将所述第二抽象语法树编译生成二进制文件;
将所述二进制文件与所述程序原文件进行合并,生成新的程序文件。
2.根据权利要求1所述的方法,其特征在于,所述将所述二进制文件与所述程序原文件进行合并,生成新的程序文件进一步包括:
将所述二进制文件与所述程序原文件进行合并;
在所述待保护的代码入口处添加跳转指令,以供被调用时进入虚拟机;
将所述程序原文件中待保护的代码进行擦除处理。
3.根据权利要求1所述的方法,其特征在于,在将所述第一抽象语法树翻译生成第二抽象语法树之后,所述方法还包括:
根据虚拟机指令类型生成解释执行单元和/或跳转表。
4.根据权利要求1所述的方法,其特征在于,在所述解析程序,将所述程序中待保护的代码进行反编译,得到第一抽象语法树之后,所述方法还包括:
将所述待保护的代码中控制转移信息进行计算和保存;其中,所述控制转移信息包括第一跳转偏移量和第一跳转指令目标虚地址。
5.根据权利要求4所述的方法,其特征在于,在将所述第二抽象语法树编译生成二进制文件之后,所述方法还包括:
修复所述二进制文件中的跳转指令,并进行重编译。
6.根据权利要求5所述的方法,其特征在于,所述修复所述二进制文件中的跳转指令,并进行重编译进一步包括:
解析所述二进制文件,得到跳转指令的第二跳转指令目标虚地址;
根据所述第一跳转偏移量、第一跳转指令目标虚地址和第二跳转指令目标虚地址,计算得到第二跳转偏移量;其中,所述第二跳转偏移量=第一跳转偏移量+第二跳转指令目标虚地址-第一跳转指令目标虚地址;
将所述二进制文件中跳转指令的操作数修改为第二跳转偏移量;
对修改后的二进制文件进行重新编译。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述二进制文件包括虚拟机引擎、解释执行单元、跳转表、虚拟机字节码和/或预设编码表。
8.一种基于虚拟机的代码保护装置,其特征在于,包括:
反编译模块,用于解析程序原文件,将所述程序中待保护的代码进行反编译,得到第一抽象语法树;
翻译模块,用于使用预设编码表将所述第一抽象语法树翻译生成第二抽象语法树;其中,所述第二抽象语法树由虚拟机指令构成;所述预设编码表为多个,每个编码表的编码方式不同;对不同的代码的第一抽象语法树翻译时使用不同的预设编码表,或者,对相同的代码的第一抽象语法树在每次翻译时使用不同的预设编码表;所述预设编码表为随机生成的;
编译模块,用于将所述第二抽象语法树编译生成二进制文件;
合并模块,用于将所述二进制文件与所述程序原文件进行合并,生成新的程序文件。
9.根据权利要求8所述的装置,其特征在于,所述合并模块还包括:
合并单元,用于将所述二进制文件与所述程序原文件进行合并;
跳转单元,用于在所述待保护的代码入口处添加跳转指令,以供被调用时进入虚拟机;
擦除单元,用于将所述程序原文件中待保护的代码进行擦除处理。
10.根据权利要求8所述的装置,其特征在于,所述装置还包括:
生成模块,用于根据虚拟机指令类型生成解释执行单元和/或跳转表。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏通付盾信息安全技术有限公司;江苏通付盾科技有限公司,未经江苏通付盾信息安全技术有限公司;江苏通付盾科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710624871.4/1.html,转载请声明来源钻瓜专利网。