jar包防反编译方法(两种)

方法一:classfinal(仅介绍非项目pom引入方式)
官方文档
https://gitee.com/roseboy/classfinal
jar包下载地址
https://repo1.maven.org/maven2/net/roseboy/classfinal-fatjar/1.2.1/classfinal-fatjar-1.2.1.jar

classfinal主要加密class文件,主要是对方法返回null处理

使用技巧:
对单个jar进行打包处理的时候,命令中一定要有-packages,否则不加密
加密命令为:java -jar classfinal-fatjar-1.2.1.jar -file ***.jar -packages com -pwd 123456 -Y

-file 加密的jar/war完整路径
-packages 加密的包名(可为空,多个用","分割)
-libjars jar/war包lib下要加密jar文件名(可为空,多个用","分割)
-cfgfiles 需要加密的配置文件,一般是classes目录下的yml或properties文件(可为空,多个用","分割)
-exclude 排除的类名(可为空,多个用","分割)
-classpath 外部依赖的jar目录,例如/tomcat/lib(可为空,多个用","分割)
-pwd 加密密码,如果是#号,则使用无密码模式加密
-code 机器码,在绑定的机器生成,加密后只可在此机器上运行
-Y 无需确认,不加此参数会提示确认以上信息

运行命令:nohup java -javaagent:classfinal-fatjar-1.2.1.jar="-pwd 123456" -jar ****.jar
加密后运行jar需要密码,所以但是在ps -ef中可以看到密码,所以不建议直接追加密码,有两种方式:
1.nohup java -javaagent:classfinal-fatjar-1.2.1.jar -jar ****.jar然后手动输入密码
2.在同级目录下的classfinal.txt或yourpaoject-encrypted.classfinal.txt中写入密码,项目读取到密码后会清空此文件。(建议运行后去观察是否删除,进行确认)

方法二:XJar(暂未研究)

你可能感兴趣的:(jar包防反编译方法(两种))