springboot项目代码混淆和反编译教程·附软件连接
对springboot项目进行代码混淆,可以防止别人通过反编译项目查看代码,即使反编译了查看的也是混淆后的看不懂的代码。
一定程度保证了项目源码安全性。
下面分享代码混淆步骤和反编译操作
Allatori-7.7 代码混淆操作步骤
使用方法
1、首先从官网下载:http://www.allatori.com/
我的文件不是从官网下载的其他地方也可以找到资源
后面会附上资源包
代码混淆工具下载
2、下载完解压,解压之后的目录是这样的:
将jar包放入项目中(/lib目录里面的两个文件)
- 配置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很容易就能找到资源,你们自己下载一下。
资源链接
springboot项目代码混淆和反编译教程·附软件连接相关推荐
- Android代码混淆及反编译
概述: 如果你目前还是一名学生或是没有在应用商店中上传过应用,恐怕对此的感受不深.而在企业中对Java代码的混淆却是一步很重要的步骤,从安全的角度来说,代码混淆,防止居心不良的人对代码进行恶意篡改非常 ...
- [进来复制]springboot项目代码混淆,帮你安排的明白的混淆代码!
首先感谢俩篇博文博主本文是基于以下俩个博文进行的,楼主也是忙活了大半天整这个混淆,本以为可以快速完成的,没成想耗时耗力. 详细的springboot结合proguard做代码混淆,感谢. 其他博主的踩 ...
- Java后端知识之代码混淆-避免反编译工具获取原码
java, 代码混淆, 编译, 反编译 本文是向大家介绍java后端小知识,它能够实现编译后的class代码加密,能够避免使用反编译工具获取源码. 本文介绍java代码编译成class后,怎么避免用反 ...
- Android代码混淆及反编译apk
序言: 经常听开发提起代码混淆引起的BUG,混淆后在测试一下有没有问题,那问题来了什么是代码混淆,怎么确认代码混淆成功了,带着问题读下文吧~~ 一.代码混淆的原理 代码混淆是将程序中的代码,等价转换为 ...
- Android混淆、反编译基础教程
Android混淆.反编译基础教程 Android APK混淆 Java代码是非常容易反编译的.为了很好的保护Java源代码,我们往往会对编译好的class文件进行混淆处理. 根据 SDK 的版本不同 ...
- Android混淆编译、反混淆、反编译
混淆编译 为了保护APK代码和架构,不轻易被外部人员反编译和破解,对发布的APK,所以必须进行代码混淆编译. Java 是一种跨平台的.解释型语言,Java 源代码(.java文件)编译成中间&quo ...
- W32Dasm反编译教程+工具
给大家转一个W32Dasm反编译教程+工具 : 请务必看教程(不看看不懂): W32Dasm是一个强大的反汇编工具,操作简单,使用方便.通常被程序员使用,当然也可被用来Crack软件了,很适合Crac ...
- Android反编译教程
转载请注明文章出住http://blog.csdn.net/wolaiye320/article/details/51736139 在网上搜索Android反编译教程,搜出来的文章要么是抄袭的,要么是 ...
- android studio可以反编译吗,android studio反编译教程
android studio反编译教程 [2021-02-13 15:05:33] 简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(& ...
最新文章
- ECMAScript3中数组方法
- 在 mingw32 上编译 libvpx 1.7.0 时的注意事项
- Codeforces 1198 1199
- Redux 源码解析系列(一) -- Redux的实现思想
- Bootstrap4+MySQL前后端综合实训-Day08-AM【多表查询sql语句、关联数据的假删除、自动增长主键的获取、栏目管理“数据编辑”按钮的实现】
- CNSA与CASC和CASIC的区别
- html可折叠边栏,html – 仅使用CSS的可折叠灵活宽边栏
- 模型ks_风控建模 模型指标篇
- 指定某个git的版本代码拉取新的分支
- 关于发送H264 sdp里的
- Web服务器常见HTTP错误码
- 大数据告诉你,中国今年最火打卡圣地竟然是它!
- iOS开发打字机效果
- 2022-2028年全球与中国婴儿食品包装行业产销需求与投资预测分析
- 《鬼谷子》飞箝第五(原文)
- 如何在浏览器查看渲染时间?
- Android Notification 详解(各版本对比)——基本操作
- 最全的 SQL 优化方案
- 修改VMWARE BIOS的三种方法
- 电脑桌面便签怎么设置待办事项完成删除或完成隐藏?