[发明专利]保护计算机程序以抵御逆向工程有效
申请号: | 201680013140.X | 申请日: | 2016-02-22 |
公开(公告)号: | CN107430650B | 公开(公告)日: | 2020-10-09 |
发明(设计)人: | 马库斯·吉利 | 申请(专利权)人: | 因温特奥股份公司 |
主分类号: | G06F21/12 | 分类号: | G06F21/12;G06F21/14 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 吴敬莲 |
地址: | 瑞士赫尔*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 保护 计算机 程序 抵御 逆向 工程 | ||
1.一种用于保护计算机程序(10)以抵御逆向工程的方法,所述方法包括:
混淆并且/或者加密所述计算机程序(10)的至少一个程序库,其中,所述至少一个程序库包含适于通过虚拟机执行的字节码;
将所述至少一个混淆的并且/或者加密的程序库包含于引导程序库(16)中,所述引导程序库(16)包括引导程序模块(20),所述引导程序模块(20)适于将所述至少一个程序库加载到所述虚拟机中并适于启动所述计算机程序(10);
对所述引导程序库(16)加密;
将所述加密的引导程序库(16)包含于本机代码启动程序可执行文件(12)中,所述本机代码启动程序可执行文件(12)包括启动程序模块(14),所述启动程序模块(14)适于启动所述虚拟机、对所述引导程序库(16)解密并适于将所述引导程序库(16)加载到所述虚拟机中。
2.根据权利要求1所述的方法,
其中,将第一密钥(24)包含于所述引导程序库(16)中,所述第一密钥(24)用于对所述至少一个程序库解密;
其中,所述引导程序模块(20)适于用所述第一密钥(24)对所述至少一个程序库解密。
3.根据权利要求1或2所述的方法,
其中,将第二密钥(18)包含于所述启动程序可执行文件(12)中,所述第二密钥(18)用于对所述引导程序库(16)解密;
其中,所述启动程序可执行文件(12)适于用所述第二密钥(18)对所述引导程序库(16)解密。
4.根据权利要求1或2所述的方法,
其中,所述引导程序库(16)在其被加密之前被混淆。
5.根据权利要求1或2所述的方法,
其中,所述至少一个程序库和/或所述引导程序库(16)通过RC4算法加密和解密。
6.根据权利要求1或2所述的方法,
其中,将附加的程序库直接包含于所述引导程序库(16)中,所述附加的程序库包含字节码。
7.根据权利要求1或2所述的方法,
其中,所述至少一个程序库包含CIL字节码或JAVA字节码;并且/或者
其中,所述引导程序库(16)包含CIL字节码或JAVA字节码。
8.一种启动受保护的计算机程序(10)的方法,所述方法包括:
启动本机代码启动程序可执行文件(12)的启动程序模块(14),所述本机代码启动程序可执行文件(12)包含加密的引导程序库(16),所述加密的引导程序库(16)包含至少一个混淆的并且/或者加密的程序库,所述至少一个混淆的并且/或者加密的程序库包含适于通过虚拟机执行的字节码;
通过所述启动程序模块(14)启动虚拟机;
通过所述启动程序模块(14)对所述引导程序库(16)解密;
将至少所述引导程序库(16)的引导程序模块(20)加载到所述虚拟机中并通过所述启动程序模块(14)启动所述引导程序模块(20);
将包含于所述引导程序库(16)中的程序库加载到所述虚拟机中并通过所述引导程序模块(20)启动所述程序库。
9.根据权利要求8所述的方法,进一步包括:
通过所述引导程序模块(20)对所述程序库解密。
10.根据权利要求8或9所述的方法,进一步包括:
通过以下步骤解析所述引导程序模块(20)对附加的加密的程序库的调用:
等待所述调用;
在所述调用之后对所述附加的加密的程序库解密;
将解密的附加的加密的程序库加载到所述虚拟机中。
11.根据权利要求8或9所述的方法,进一步包括:
通过所述启动程序模块(14)检测调试程序是否处于活动状态;
当检测到处于活动状态的调试程序时终止所述检测。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于因温特奥股份公司,未经因温特奥股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201680013140.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:防范音频/视频内容安全域交叉的对策
- 下一篇:用于识别用户的交互签名的方法