springboot项目代码混淆和反编译教程·附软件连接

article/2025/10/24 9:32:37

对springboot项目进行代码混淆,可以防止别人通过反编译项目查看代码,即使反编译了查看的也是混淆后的看不懂的代码。
一定程度保证了项目源码安全性。
下面分享代码混淆步骤和反编译操作

Allatori-7.7 代码混淆操作步骤

使用方法

1、首先从官网下载:http://www.allatori.com/

​ 我的文件不是从官网下载的其他地方也可以找到资源
后面会附上资源包
代码混淆工具下载

2、下载完解压,解压之后的目录是这样的:
在这里插入图片描述
将jar包放入项目中(/lib目录里面的两个文件)
在这里插入图片描述

  1. 配置maven插件,如果是maven多模块,可以将jar包提取到父目录共用,xml文件各自配置各自的

<plugin> <!-- 这个也要加,,没加之前一直报错 --><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><!-- Allatori plugin start --><plugin><!-- resouces拷贝文件插件 --><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>3.1.0</version><!-- 执行这个插件的时候执行申明的所有phase --><executions><execution><id>copy-and-filter-allatori-config</id><phase>package</phase><goals><goal>copy-resources</goal></goals><configuration><!-- 指明文件的输出路径 即混淆后的文件的输出路径 ${basedir}:是项目的根目录 即与src同级的目录 --><outputDirectory>${basedir}/target</outputDirectory><resources><resource><!-- 项目的resources目录,一般用于存放配置文件 --><directory>src/main/resources</directory><includes><!-- 代码混淆时所依据的配置文件 可以看出,我放在了resources目录下   这个文件将会被拷贝到 ${basedir}/target 目录下--><include>allatori.xml</include></includes><filtering>true</filtering></resource></resources></configuration></execution></executions></plugin><plugin><!-- 代码混淆打包插件 --><groupId>org.codehaus.mojo</groupId><artifactId>exec-maven-plugin</artifactId><version>1.6.0</version><executions><execution><id>run-allatori</id><phase>package</phase><goals><goal>exec</goal></goals></execution></executions><configuration><executable>java</executable><arguments><argument>-Xms128m</argument><argument>-Xmx512m</argument><argument>-jar</argument><!-- 指定引用的allatori的jar包位置,这里把jar包放在了根目录下的lib目录里 --><argument>${basedir}/lib/allatori.jar</argument><!-- 指定代码混淆时的配置文件,因为是混淆指定的是jar包,jar包位置在target下,所以我们的allatori.xml也需要拷贝到该目录下(上面的拷贝文件插件已经帮我们做了这些事) --><argument>${basedir}/target/allatori.xml</argument></arguments></configuration></plugin><!-- Allatori plugin end -->

配置allatori.xml文件,配置混淆规则 文件放在/src/resources/下面
在这里插入图片描述

<config><input><jar in="licensemanagement-1.0-SNAPSHOT.jar" out="aa-allatori.jar"/></input><ignore-classes><class template="class *springframework*"/><class template="class *jni*"/><class template="class *alibaba*"/><class template="class *persistence*"/><class template="class *apache*"/><class template="class *mybatis*"/><class template="class *github*"/><class template="class com.lpx.licensemanagement.anotation.*"/><class template="class com.lpx.licensemanagement.aspect.*"/><class template="class com.lpx.licensemanagement.async.*"/><class template="class com.lpx.licensemanagement.config.*"/>
<!--        <class template="class com.lpx.licensemanagement.controller.*"/>--><class template="class com.lpx.licensemanagement.entity.*"/><class template="class com.lpx.licensemanagement.enums.*"/><class template="class com.lpx.licensemanagement.exception.*"/><class template="class com.lpx.licensemanagement.filter.*"/><class template="class com.lpx.licensemanagement.interceptor.*"/><class template="class com.lpx.licensemanagement.interfaces.*"/><class template="class com.lpx.licensemanagement.mapper.*"/><class template="class com.lpx.licensemanagement.pojo.*"/><class template="class com.lpx.licensemanagement.service.*"/><class template="class com.lpx.licensemanagement.utils.RedisOperator"/><class template="class com.lpx.licensemanagement.LicenseManagementApplication"/></ignore-classes><keep-names><class access="protected+"><field access="protected+"/><method access="protected+"/></class><!-- 所有方法名称不变  parameters="keep" 表示方法的形参也不变 方法形参混淆后会导致参数映射获取失败 --><!--<method template="*(**)" parameters="keep" />--><!-- 控制层 方法名、方法、形参 不混淆 --><class template="class com.lpx.licensemanagement.controller.*"><method template="protected+ *(**)" parameters="keep"/></class><!--        <class template="class com.lpx.test.service.*">--><!--            <method template="protected+ *(**)" parameters="keep"/>--><!--        </class>--></keep-names><property name="log-file" value="log.xml"/>
</config>

配置好后打包即可

mvn clean install -Dmaven.test.skip=true

在这里插入图片描述

当出现下图则说明混淆成功
在这里插入图片描述

此时target目录下会生成混淆后的jar包
在这里插入图片描述

反编译步骤

可以使用反编译工具查看混淆后的jar包代码是否成功混淆(我使用的是jd-gui)
反编译工具百度和CSDN很容易就能找到资源,你们自己下载一下。
资源链接
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


http://chatgpt.dhexx.cn/article/I2ayIlQw.shtml

相关文章

一键反编译Android包教程

2023.6.6更新&#xff1a; 因为引入了v2签名&#xff0c;所以工具包进行了更新&#xff0c;已经支持v1 v2签名&#xff0c;签名工具替换为apksigner.jar 功能介绍 某些时候我们想修改apk包内容&#xff0c;比如汉化某个游戏&#xff0c;这时候就需要修改游戏apk的包内容&…

ApkToolkit 反编译 教程

今天踩了一遍坑&#xff0c;算是成功了&#xff0c;坑就不描述了&#xff0c;按如下方法应该可以OK完成反编译再打包签名。 使用工具ApkToolkit 第一步&#xff1a;下载ApkToolkit并解压&#xff0c;随便丢哪儿都行 下载地址&#xff1a;https://down.52pojie.cn/Tools/Android…

android studio可以反编译吗,android studio反编译教程

android studio反编译教程 [2021-02-13 15:05:33] 简介: php去除nbsp的方法&#xff1a;首先创建一个PHP代码示例文件&#xff1b;然后通过“preg_replace("/(\s|\&nbsp\;| |\xc2\xa0)/", " ", strip_tags($val));”方法去除所有nbsp即可。推荐&…

apk反编译教程

apk反编译教程 工具介绍 apktool 最新版 jar 包 作用&#xff1a;资源文件获取&#xff0c;可以提取出图片文件和布局文件进行使用查看dex2 jar 的zip包 作用&#xff1a;将apk反编译成java源码&#xff08;classes.dex转化成jar文件&#xff09;jd-gui 工具 作用&#xff1a…

安卓apk反编译教程

从dex提取jar文件 手机直接提取 np或者mt管理器 点击2jar即可 如果遇到多个dex 即使合并也可能失效&#xff08;因为单个dex有最大限制&#xff09; 电脑提取 下载dex2jar github 注意是>2.0的 如2.1版本&#xff0c;2.0以及之前的版本 不支持多个dex文件 # 最好文件路…

Android APK反编译教程

目录 一、反编译工具二、注意事项三、apktool1.1 官方链接1.2 下载安装1.3 使用 四、dex2jar1.1 官方链接1.2 下载安装1.3 使用 五、jd-gui1.1 官方链接1.2 下载安装1.3 使用 一、反编译工具 1、apktool&#xff1a;获取资源文件&#xff0c;提取图片文件&#xff0c;布局文件…

c语言so文件反编译,apk so文件反编译教程

apk so文件反编译教程 [2021-02-16 11:29:44] 简介: php去除nbsp的方法&#xff1a;首先创建一个PHP代码示例文件&#xff1b;然后通过“preg_replace("/(\s|\&nbsp\;| |\xc2\xa0)/", " ", strip_tags($val));”方法去除所有nbsp即可。推荐&#xff…

双端原生小龟影视反编译教程

介绍&#xff1a; 双端原生小龟反编译教程 网盘下载地址&#xff1a; http://kekewl.org/ASpd7fRv9BM0 图片&#xff1a;

android逆向工程反编译指南(详细教程)

要反编译一定要用到工具。 apktool是谷歌官方推出的反编译软件&#xff0c;只能说还能用。而且至今没有好用的IDE。android反编译就是通过apktool这个工具来实现的。其他的GUI环境&#xff0c;例如AndroidKiller都是给apktool套了一个壳而已。不过不得不提的是AndroidKiller这个…

(史上最全)C语言快速入门宝典(一)

&#x1f525;&#x1f525; 欢迎来到小林的博客&#xff01;&#xff01;       &#x1f6f0;️博客主页&#xff1a;✈️小林爱敲代码       &#x1f6f0;️欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言       今天给大家分享C语言中…

C语言入门(一):初识C程序

C语言入门&#xff08;一&#xff09;&#xff1a;初识C程序 网址&#xff1a;C语言入门 1-2 C程序结构 简单来说&#xff0c;一个C程序就是由若干头文件和函数组成。 #include <stdio.h> // 包含头文件&#xff0c;预处理 int main() // 在最新的C…

C语言入门这一篇就够了!!!-万字长文(前半部分)

C语言-万字长文总结 前言一、C语言-简介二、C语言-程序结构2.1 程序结构2.2 无头文件-错误解析 三、C语言-基本语法3.1 关键字3.2 标识符3.3 注释 四、C语言-数据类型4.1 整数类型4.2 浮点类型4.3 void 类型 五、C语言-变量5.1 变量类型5.2 变量的定义、声明5.3 Lvalues和Rvalu…

C语言入门教程合集

目录 第一章 初识C语言 1.C语言基础知识 2.C语言的构成 3.第一个C语言程序 4.数据类型 5.C的标识符 5.1标识符的命名规则 5.2标识符的分类 6.变量 6.1定义变量的方法 6.2变量的分类 6.3变量的使用 6.4变量的作用域和生命周期 7.常量 7.1符号常量 7.2字符串常量…

简单c语言入门

[TOC](目录 ## 前言 内容 ​​# 1.第一个C程序 # 2.标识符 # 3.变量 # 4.数据类型 ### 1.1整型 ### 1.2浮点型 ### 1.3字符型 # 5.运算符 # 6.符号常量 # 7.标准化输入输出 # 8.语句结构 ## 1.1顺序结构 ## 1.2择结构 ## 1.3循环结构 ## 9.break和continue语句…

零基础学C语言(C语言入门)

C语言入门&#xff08;初识C语言&#xff09; 初识C语言 前言什么是C语言为什么要选择C语言作为学习的第一门语言一.第一个C语言程序1.1 #include1.2 int main()1.3 printf1.4 return 01.5小结 二.C语言的数据类型三.C语言的常量与变量3.1常量3.2变量 总结 前言 什么是C语言 …

C语言入门教程,C语言自学教程(2022年)

一、C语言入门教程&#xff0c;C语言自学教程 经过多年的时间洗礼&#xff0c;C语言俨然已成为“第一”语言&#xff0c;出色的性能使之成为高级语言中的性能王者。这么牛的语言&#xff0c;你是不是想知道怎样学习和掌握它呢&#xff1f;接下来请看经过小编整理过的C语言入门…

C语言从入门到精通

文章目录 C语言1.helloworld1.1 pause1.2 cls清屏1.3 加法运算1.4 hello 2 常量变量和数据类型2.1 常量2.2 变量2.3 sizeof数据类型大小2.4 无符号整型2.5 字符类型2.5.1 字符类型简介2.5.2 字符类型运算 2.6 实数型2.7 进制和转换2.8 数据溢出 3. 运算符和分支循环语句3.1 字符…

单片机及C语言入门

一、什么是单片机&#xff1f; 将CPU芯片、存储器芯片、I/O接口芯片和简单的I/O设备&#xff08;小键盘、LED显示器&#xff09;等装配在一块印刷电路板上&#xff0c;再配上监控程序&#xff08;固化在ROM中&#xff09;&#xff0c;就构成了一台单片微型计算机&#xff08;简…

【零基础】入门C语言这一篇就够了

初识C语言 1. 什么是C语言&#xff1f;2. 第一个C语言程序2.1 如何写代码2.2 运行代码 3. 数据类型3.1 为什么出现这么多类型&#xff1f;3.2 如何使用数据类型3.3 数据类型的大小 4. 变量、常量4.1 定义变量的方法4.2 变量的命名4.3 全局变量和局部变量4.4 变量的使用4.4.1 sc…

C语言入门学习(入门级C语言)

一、初识C语言 【定义】C语言&#xff1a;一种通用的计算机语言&#xff08;人和计算机交互的语言&#xff09;&#xff0c;广泛用于底层软件开发。 C语言是一门面向过程的编程语言。 【如何写语言代码】 第一步&#xff1a;写出主函数&#xff08;main函数&#xff09; C…