[发明专利]一种Java代码加密方法及装置有效
申请号: | 201910575200.2 | 申请日: | 2019-06-28 |
公开(公告)号: | CN110309630B | 公开(公告)日: | 2023-05-30 |
发明(设计)人: | 顾凌云;王伟;冷健;毛靖文;马翔;蒋安维 | 申请(专利权)人: | 南京冰鉴信息科技有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14;G06F21/60 |
代理公司: | 常州佰业腾飞专利代理事务所(普通合伙) 32231 | 代理人: | 滕诣迪 |
地址: | 210003 江苏省*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 java 代码 加密 方法 装置 | ||
本发明提供了一种Java代码加密方法及装置,其中方法包括:在JVM注册本地方法;采用javah命令为N个C程序生成头文件,其中,每个头文件用于声明一个C函数;将每个C程序编译成动态链接库文件,生成M个动态链接库;获取动态链接库加密方式,利用动态链接库加密方式对每个动态链接库进行加密,得到M个加密动态链接库;调用M个动态链接库中与待调用的C函数匹配的C程序,对Java类文件进行加密,得到加密Java文件,其中,加密Java文件包括指定加密动态链接库的指定加密动态链接库信息,指定加密动态链接库为指定动态链接库加密后得到的,指定动态链接库为与待调用的C函数匹配的C程序所在的动态链接库。
技术领域
本发明涉及代码加密技术领域,尤其涉及一种Java代码加密方法及装置。
背景技术
Java有着简单、跨平台等各种优秀的特性,在软件开发的各个领域得到了大量的应用。Java跨平台的灵活性源于独特的编译方式,Java源代码经过编译后,生成的不是面向处理器的二进制文件而是面向虚拟机的Java类文件。类文件是一种带有格式的中间代码。保留了源代码中大部分的信息。所以可以很容易的通过反编译得到与源代码相差无几的代码。所以,为了保护Java代码的安全性,需要对Java代码做一些加密的措施。
现有的Java的安全措施主要从两个方面进行保护,类加载器加密和代码混淆。
类加载器加密:
由于Java虚拟机每次装入类文件时都需要使用一个类加载器的对象,这个对象负责把新的类装入到Java虚拟机中。Java虚拟机向类加载器提供一个包含待装入类名字的字符串,然后由类加载器负责找到该类文件,并把它转换为一个类对象。
利用上述的机制就可以改写类加载器对象,在装入了原始类文件的数据后先进行解密,然后再转换成类对象,由于把原始字节码转换成类对象的过程完全由系统负责,只需要先获得原始数据,接着就可以进行包含解密操作在内的任何转换。
这种机制看起来很安全,然而由于类加载器的类是使用Java语言编写的,所以如果把类加载器函数进行反编译,提取其中解密部分的内容,就可以解密所有已经加密的类文件,因为类加载器本身是不可以加密自己的。
代码混淆:
代码混淆是将代码转换成难以读懂的格式,使破解代码变得较为复杂。典型的代码混淆包括去除所有代码中的调试信息,重命名函数以及变量表,让第三方难以从变量函数名称中得到代码的逻辑。先进的混淆器则通过重构现有的逻辑和插入不执行的伪代码来改变控制流程。混淆的前提是不会破坏字节码的有效性。也不会改变所展示的功能性。虽然通过混淆代码的方法可以在很大程度上增加阅读代码的难度,但是通过对代码逻辑的梳理还是可以得到原始代码的。
发明内容
本发明旨在提供一种克服上述问题之一或者至少部分地解决上述任一问题的Java代码加密方法及装置。
为达到上述目的,本发明的技术方案具体是这样实现的:
本发明的一个方面提供了一种Java代码加密方法,包括:在JVM注册本地方法;采用javah命令为N个C程序生成头文件,其中,每个头文件用于声明一个C函数,每个C程序实现各自头文件声明的函数,N为第一预设值,N≥1且为自然数;将每个C程序编译成动态链接库文件,生成M个动态链接库,其中,M为第二预设值,M≥1且为自然数;获取动态链接库加密方式,利用动态链接库加密方式对每个动态链接库进行加密,得到M个加密动态链接库;调用M个动态链接库中与待调用的C函数匹配的C程序,对Java类文件进行加密,得到加密Java文件,其中,加密Java文件包括指定加密动态链接库的指定加密动态链接库信息,其中,指定加密动态链接库为指定动态链接库加密后得到的,其中,指定动态链接库为与待调用的C函数匹配的C程序所在的动态链接库。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京冰鉴信息科技有限公司,未经南京冰鉴信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910575200.2/2.html,转载请声明来源钻瓜专利网。