首页 > 其他分享 >jar-project 代码加壳加密工具【开源】

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

时间:2023-07-03 21:13:32浏览次数:48  
标签:java -- jar 解密 project 加壳 加密 com

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

介绍

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

使用说明

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

加密设计

 

加密命令

jdk17 需要加--add-opens java.base/java.lang=ALL-UNNAMED

#fromJar 待加密的jar包的地址,支持相对路径
#excludeClass 排除(不加密)类文件,支持前后*进行模糊匹配
#includeJar 包含(需要加密)jar包,支持前后*进行模糊匹配
java -jar jar-project.jar --fromJar "c:\\tool\\a.jar" --excludeClass "*EurekaApplication*" --includeJar "lmc-*"

加密配置

文件名: jar-project.security.properties

#过期时间,为空则不限制过期时间(默认到9999-01-01)
expireTime=2023-07-01
#加密密码,为空则随机生成动态密码
password=
#加密解密文件地址(加密java代码源码),为空则使用自带des加密
myEncryptCodeFile=加密.java
#加密方写入的版权信息声明,为空则无
myVersionInfo=请正规渠道获得版本授权文件,严禁进行反编译修改或破解,一经发现会追溯法律责任!

 

加密.java模板

package com.free.bsf.jarprotect.core.encrypt;
import com.free.bsf.jarprotect.core.base.BsfException;
import com.free.bsf.jarprotect.core.base.Context;
import com.free.bsf.jarprotect.core.encrypt.IEncrypt;

/*MyEncrypt类名不能更改,注意引用相应的包(仅支持jdk自身的类库,不能使用第三方类库)*/
public class MyEncrypt implements IEncrypt {
    @Override
    public byte[] e(byte[] d) {
        try {
           //Context.Default.getPassword()
           /*加密逻辑代码*/
        }catch (Exception e){
            throw new BsfException(e);
        }
    }

    @Override
    public byte[] d(byte[] d) {
        try {
            //Context.Default.getPassword()
            /*解密逻辑代码*/
        }catch (Exception e){
            throw new BsfException(e);
        }
    }
}

解密设计

 

解密命令

jdk17 需要加--add-opens java.base/java.lang=ALL-UNNAMED

java -javaagent:encrypt-lmc-demo-provider-1.0-SNAPSHOT.jar -jar encrypt-lmc-demo-provider-1.0-SNAPSHOT.jar

解密配置

一般为加密jar包后自动生成,文件名为{jar包名}.security.properties,解密jar需要配套此解密配置文件

#加密密码
password=
#解密秘钥代码
myDecryptCode=

未来扩展

  1. 增加配置文件等资源加密
  2. 增加远程授权管理端

 

by 车江毅

技术vp

2023-7-3

标签:java,--,jar,解密,project,加壳,加密,com
From: https://www.cnblogs.com/chejiangyi/p/17524038.html

相关文章

  • 解决Springboot项目打成jar包后获取resources目录下的文件失败的问题
    前几天在项目读取resources目录下的文件时碰到一个小坑,明明在本地是可以正常运行的,但是一发到测试环境就报错了,说找不到文件,报错信息是:classpathresource[xxxx]cannotberesolvedtoabsolutefilepathbecauseitdoesnotresideinthefilesystem:jar:file:xxxx.jar!/......
  • 【差分 Trick】CF626F Group Projects
    模拟赛垫底哥来补题了。先排序,考虑到原来的弱智状态难以描述,我们可以这样写:\(f_{i,j,k}\)表示前\(i\)个,\(j\)段未闭合,目前的不协调值为\(k\)。然后喜提\(n^2\suma_i\)的时间复杂的。然后就是经典tricktime,这个可以看作很多线段。然后\(a_r-a_l=\suma_{i+......
  • Jar包开发之【有之则用,无之则禁】
    最近在开发一个热部署平台,应用接入平台需要依赖我们提供一个代理包,为应用提供,订阅热补命令、往注册中心写应用地址信息,解析命令进行热部署的能力。应用需要在平台配置该应用的发布订阅的组件信息。然后应用在启动的时候取注册这个监听。当平台发布热补命令的时候,所有监听到的应用......
  • jar文件打包成exe以及生成安装程序
    仅以此文献给还在为打包jar文件而徘徊挣扎的朋友...所需工具下载地址如下:launch4j(jar-->exe)Setup.zip(exe-->安装程序) jar-->exe-->安装程序详细步骤如下: 1.解压下载好的launch4j,并打开其中的launch4j.jar或者launch4j.exe。  2.打开之后launch4j后,如下图:step1:选择你的jar文......
  • 3分钟了解Manjaro Linux
    导读在这个系列的第七篇,我们来说一说什么是Manjaro。Manjaro是基于Arch Linux 并且拥有一个漂亮的用户界面的操作系统。Manjaro并不像Debian或者 Arch这些Linux发行版一样历史悠久,但是它依然十分的稳定而可靠,从而在各色发行版中显得鹤立鸡群。2011年Manjaro才......
  • 使用Gitee或GitHub托管Maven仓库JAR包的便捷方法
    原文地址:https://ntopic.cn/p/2023062201/我开源的JAR包的Gitee和GitHub托管的Maven仓库:Gitee托管仓库:https://gitee.com/obullxl/maven-repositoryGitHub托管仓库:https://github.com/obullxl/maven-repository背景说明在上一篇博客中,我们介绍了开源通用高性能分布式id序列......
  • .sh 定时启动脚本 启动jar文件
    进入.sh文件目录下,执行sh命令 #检查脚本是否有问题sh-x start.sh启动命令:sh start.shstart停止命令:sh start.shstop查看状态命令:shstart.shstatus重启命令:sh start.shrestart常见错误:1、$‘\r’:未找到命令错误原因:win文件和linux文件不兼容解决方法,用notepad......
  • jar 包调试
    idea本地运行没有问题  打的jar包接口调用报错 Invalidboundstatementjar调试 原文链接: https://www.jb51.net/article/240922.htm问题解决 原文链接:https://blog.csdn.net/weixin_39034563/article/details/124134568问题:一般情况下,可以打成Jar包的项目,它的源......
  • JDK/bin目录下的不同exe文件的用途(appletviewer、HtmlConverter、jar、java、javac、
    目录---------------------------------------1.javacexe2.appletviewerexe3.jarexe4.javadocexe5.javahexe6.HtmlConverterexe7.orbdexe8.policytoolexe9.rmicexe10.rmidexe11.rmiregistryexe12.serialverexe13.servertoolexe14.rmic15.rmid16.rmiregistry17.serialver18.jarsi......
  • Ubuntu将jar包部署为服务运行
    1、进入/etc/systemd/system目录cd/etc/systemd/system之前没有在该目录放置时有时候汇报格式不正确,需要在头部加点东西,这边省事规范,我们就放在这个目录下就好了。2、新建service文件sudovim服务名称.service内容大致如下:[Unit]Description=testAfter=syslog.targetn......