Proguard代码混淆-springboot3
一、背景介绍
我们交付软件的时候,有时候不想把源代码程序泄露出去,就需要对软件产品做一些机器混淆处理,以降低其可读性和被破解的风险。
以java软件开发为例子,目前java开发用的最多的框架技术是springboot,而现如今springboot最流行的版本已经达到了3.0以上。
本文作者亲测打包部署,springboot jar包,并使用proguard-maven-plugin插件,对编译后的代码进行再次混淆,而不改变jar包的功能特性,从而有效保护了开发者的劳动成果。
本次测试的软件开发环境:
java版本:17
springboot:3.2
mysql:8.0
二、关于proguard
据proguard官网介绍,其可以对java字节码文件进行优化、压缩、混淆等。
但是proguard官网并未提供Java idea开发工具的maven插件,proguard官网也标注了下载相关maven插件的其它网站:
Some open-source implementations:
- https://github.com/wvengen/proguard-maven-plugin
- https://github.com/dingxin/proguard-maven-plugin
如果下载有问题,可以添加文末微信好,免费领取。
三、proguard混淆jar包实操
1 pom文件添加proguard 相关plugin
2 配置代码混淆相关属性(几个关键配置)
2.1 保留springboot main方法入口
2.2 如果项目是多模块(modal)的
如果项目是多模块(modal)的,将其它相关依赖模块也进行代码混淆,而不是让其它模块以jar包的形式,存放在lib目录中。
首先,在configuration中增添inclusion
其次,在原sprongbootmaven-plugin下排除掉lib选项
2.3 指定java版本17
本文,是在springboot3项目中实操proguard用法,其中项目使用maven工具管理依赖文件,项目采用父子modal的多modal形式,最终打包成了一个主modal文件,即整个工程最终通过一个jar文件来运行。
完整proguard代码混淆配置示例在工程的pom文件中,
示例程序获取通道请点击这里
更多问题咨询,请添加小编wx好友👇👇👇