一种低成本Java源代码保护方法及装置
摘要文本
本发明提出一种低成本Java源代码保护方法及装置,属于代码保护技术领域,结合Maven插件在源代码编译的process‑classes阶段,将所需要加密的class文件通过AES加密算法进行加密,生成密文的class文件,同时删除对应的明文class文件;定义一个CustomerClassLoader来解密密文的class文件;最后将CustomerClassLoader采用设定加密办法加密,将对应的解密方法采用C++语言编写并且编译成动态链接库,可以保证交付源码的安全性,增加Java源码的破解难度和工作量,有效增加Java软件的版权保护力度。
申请人信息
- 申请人:山东浪潮科学研究院有限公司
- 申请人地址:250000 山东省济南市高新区浪潮路1036号s02楼
- 发明人: 山东浪潮科学研究院有限公司
专利详细信息
| 项目 | 内容 |
|---|---|
| 专利名称 | 一种低成本Java源代码保护方法及装置 |
| 专利类型 | 发明申请 |
| 申请号 | CN202410244863.7 |
| 申请日 | 2024/3/5 |
| 公告号 | CN117828555A |
| 公开日 | 2024/4/5 |
| IPC主分类号 | G06F21/12 |
| 权利人 | 山东浪潮科学研究院有限公司 |
| 发明人 | 刘海鹏; 魏子重; 周祥龙; 李锐 |
| 地址 | 山东省济南市高新区浪潮路1036号s02楼 |
专利主权项内容
1.一种低成本Java源代码保护方法,其特征在于,包括:步骤1:自定义Maven插件,在项目编译的process-classes阶段,将需要加密的class文件采用AES加密算法加密,将加密后的文件存放在设定文件夹并且删除原class文件;步骤2:自定义CustomerClassLoader,用于发现和解密密文的class文件,其中包含解密所需的AES对称密钥;步骤3:自定义Maven插件,在项目编译的process-classes阶段,将CustomerClassLoader编译后的class文件选择设定的加密程序进行加密,加密后的CustomerClassLoader写回原处;步骤4:开发一个解密的JVMTI Agent,在JVM加载class时会进行回调,当加载到CustomerClassLoader.class会执行与加密程序相反的解密程序,将解密的CustomerClassLoader.class返回给JVM;步骤5:将解密的JVMTI Agent编译成适合不同操作系统的解密的动态链接库,在运行系统时链接解密的动态链接库,在交付源码时删除Maven的加密插件同时交付解密的动态链接库,保证交付源码的安全性。