← 返回列表

一种低成本Java源代码保护方法及装置

申请号: CN202410244863.7
申请人: 山东浪潮科学研究院有限公司
申请日期: 2024/3/5

摘要文本

本发明提出一种低成本Java源代码保护方法及装置,属于代码保护技术领域,结合Maven插件在源代码编译的process‑classes阶段,将所需要加密的class文件通过AES加密算法进行加密,生成密文的class文件,同时删除对应的明文class文件;定义一个CustomerClassLoader来解密密文的class文件;最后将CustomerClassLoader采用设定加密办法加密,将对应的解密方法采用C++语言编写并且编译成动态链接库,可以保证交付源码的安全性,增加Java源码的破解难度和工作量,有效增加Java软件的版权保护力度。

专利详细信息

项目 内容
专利名称 一种低成本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的加密插件同时交付解密的动态链接库,保证交付源码的安全性。