jar-project 代码加壳加密工具【开源】

打印 上一主题 下一主题

主题 974|帖子 974|积分 2926

开源地址:https://gitee.com/chejiangyi/jar-protect
介绍

java 本身是开放性极强的语言,代码也容易被反编译,没有语言层面的一些常规保护机制,jar包很容易被反编译和破解。 受classfinal(已停止维护)设计启发,针对springboot日常项目开发,重新编写安全可靠的jar包加壳加密技术,用于保护软件版权。
使用说明


  • 使用jdk8编译,支持jdk8+版本
  • 目前支持springboot打包的jar文件(其他未测)
  • 目前仅支持class文件加密
加密设计


 
加密命令

jdk17 需要加--add-opens java.base/java.lang=ALL-UNNAMED
  1. #fromJar 待加密的jar包的地址,支持相对路径
  2. #excludeClass 排除(不加密)类文件,支持前后*进行模糊匹配
  3. #includeJar 包含(需要加密)jar包,支持前后*进行模糊匹配
  4. java -jar jar-project.jar --fromJar "c:\\tool\\a.jar" --excludeClass "*EurekaApplication*" --includeJar "lmc-*"
复制代码
加密配置

文件名: jar-project.security.properties
  1. #过期时间,为空则不限制过期时间(默认到9999-01-01)
  2. expireTime=2023-07-01
  3. #加密密码,为空则随机生成动态密码
  4. password=
  5. #加密解密文件地址(加密java代码源码),为空则使用自带des加密
  6. myEncryptCodeFile=加密.java
  7. #加密方写入的版权信息声明,为空则无
  8. myVersionInfo=请正规渠道获得版本授权文件,严禁进行反编译修改或破解,一经发现会追溯法律责任!
复制代码
 
加密.java模板
  1. package com.free.bsf.jarprotect.core.encrypt;
  2. import com.free.bsf.jarprotect.core.base.BsfException;
  3. import com.free.bsf.jarprotect.core.base.Context;
  4. import com.free.bsf.jarprotect.core.encrypt.IEncrypt;
  5. /*MyEncrypt类名不能更改,注意引用相应的包(仅支持jdk自身的类库,不能使用第三方类库)*/
  6. public class MyEncrypt implements IEncrypt {
  7.     @Override
  8.     public byte[] e(byte[] d) {
  9.         try {
  10.            //Context.Default.getPassword()
  11.            /*加密逻辑代码*/
  12.         }catch (Exception e){
  13.             throw new BsfException(e);
  14.         }
  15.     }
  16.     @Override
  17.     public byte[] d(byte[] d) {
  18.         try {
  19.             //Context.Default.getPassword()
  20.             /*解密逻辑代码*/
  21.         }catch (Exception e){
  22.             throw new BsfException(e);
  23.         }
  24.     }
  25. }
复制代码
解密设计


 
解密命令

jdk17 需要加--add-opens java.base/java.lang=ALL-UNNAMED
  1. java -javaagent:encrypt-lmc-demo-provider-1.0-SNAPSHOT.jar -jar encrypt-lmc-demo-provider-1.0-SNAPSHOT.jar
复制代码
解密配置

一般为加密jar包后自动生成,文件名为{jar包名}.security.properties,解密jar需要配套此解密配置文件
  1. #加密密码
  2. password=
  3. #解密秘钥代码
  4. myDecryptCode=
复制代码
未来扩展


  • 增加配置文件等资源加密
  • 增加远程授权管理端
 
by 车江毅
技术vp
2023-7-3

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

东湖之滨

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表