您当前的位置:首页 > 电脑百科 > 安全防护 > 服务器/网站

SpringBoot 玩一玩代码混淆,防止反编译代码泄露

时间:2022-11-20 09:25:56  来源:今日头条  作者:老诚不bug

编译

简单就是把代码跑一哈,然后我们的代码 .JAVA文件 就被编译成了 .class 文件

反编译

就是针对编译生成的 jar/war 包 里面的 .class 文件 逆向还原回来,可以看到你的代码写的啥。

比较常用的反编译工具 JD-GUI ,直接把编译好的jar丢进去,大部分都能反编译看到源码:

那如果不想给别人反编译看自己写的代码呢?

怎么做?

混淆

该篇玩的代码混淆 ,是其中一种手段。

我给你看,但你反编译看到的不是真正的代码。

先看一张效果示例图 :

开搞

正文

先看一下我们混淆一个项目代码,要做啥?

第一步, 在项目路径下,新增一份文件 proguard.cfg :

proguard.cfg

#指定Java的版本
-target 1.8
#proguard会对代码进行优化压缩,他会删除从未使用的类或者类成员变量等
-dontshrink
#是否关闭字节码级别的优化,如果不开启则设置如下配置
-dontoptimize
#混淆时不生成大小写混合的类名,默认是可以大小写混合
-dontusemixedcaseclassnames
# 对于类成员的命名的混淆采取唯一策略
-useuniqueclassmembernames
#混淆时不生成大小写混合的类名,默认是可以大小写混合
-dontusemixedcaseclassnames
#混淆类名之后,对使用Class.forName('className')之类的地方进行相应替代
-adaptclassstrings

 

#对异常、注解信息予以保留
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod
# 此选项将保存接口中的所有原始名称(不混淆)-->
-keepnames interface ** { *; }
# 此选项将保存所有软件包中的所有原始接口文件(不进行混淆)
#-keep interface * extends * { *; }
#保留参数名,因为控制器,或者MyBatis等接口的参数如果混淆会导致无法接受参数,xml文件找不到参数
-keepparameternames
# 保留枚举成员及方法
-keepclassmembers enum * { *; }
# 不混淆所有类,保存原始定义的注释-
-keepclassmembers class * {
@org.springframework.context.annotation.Bean *;
@org.springframework.beans.factory.annotation.Autowired *;
@org.springframework.beans.factory.annotation.Value *;
@org.springframework.stereotype.Service *;
@org.springframework.stereotype.Component *;
}

#忽略warn消息
-ignorewarnings
#忽略note消息
-dontnote
#打印配置信息
-printconfiguration
-keep public class com.example.myproguarddemo.MyproguarddemoApplication {
public static void mAIn(java.lang.String[]);
}

注意点:

其余的看注释,可以配置哪些类不参与混淆,哪些枚举保留,哪些方法名不混淆等等。

第二步,在pom文件上 加入proguard 混淆插件 :

build标签里面改动加入一下配置。推荐面试宝典:https://www.yoodb.com,记着收藏,以备不时之需。


com.Github.wvengengroupId>
proguard-maven-pluginartifactId>
2.6.0version>

 


packagephase>
proguardgoal>
goals>
execution>
executions>

${project.build.finalName}.jarinjar>

${project.build.finalName}.jaroutjar>

trueobfuscate>

${project.basedir}/proguard.cfgproguardInclude>


${java.home}/lib/rt.jarlib>
${java.home}/lib/jce.jarlib>
${java.home}/lib/jsse.jarlib>
libs>

!META-INF/**,!META-INF/versions/9/**.classinLibsFilter>

${project.basedir}/targetoutputDirectory>

 

注意点:

然后可以看到:

然后点击package,正常执行编译打包流程就可以 :

然后可以看到jar的生成:

看看效果:

好了,该篇就到这。

 

作者:小目标青年 https://blog.csdn.NET/qq_35387940/article/details/127426354


Tags:代码混淆   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
有什么好用的C/C++源代码混淆工具?
开始使用ipaguard前言iOS加固保护是直接针对ios ipa二进制文件的保护技术,可以对iOS APP中的可执行文件进行深度混淆、加密。使用任何工具都无法逆向、破解还原源文件。对APP...【详细内容】
2023-12-29  Search: 代码混淆  点击:(119)  评论:(0)  加入收藏
聊聊如何进行代码混淆加固
前言什么是代码混淆代码混淆,是指将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为。代码混淆常见手段1、名称混淆将有意义的类,字段、方法名称更改为...【详细内容】
2023-11-27  Search: 代码混淆  点击:(176)  评论:(0)  加入收藏
iOS代码混淆和加固技术详解
摘要:本文介绍了iOS开发中常用的代码混淆和加固技术,包括数据加密、应用加壳和代码混淆。其中,重点讨论了代码混淆的实现方法和注意事项,并推荐了一些相关的工具和库。引言在开...【详细内容】
2023-10-17  Search: 代码混淆  点击:(255)  评论:(0)  加入收藏
HTML代码混淆技巧:让爬虫无法抓取,保护你的网页!
随着互联网的发展,越来越多的网站开始使用爬虫技术来获取数据。但是,有些网站为了保护自己的数据安全,会对HTML代码进行混淆处理,使得爬虫无法直接抓取数据。本文将介绍HTML代码...【详细内容】
2023-04-13  Search: 代码混淆  点击:(239)  评论:(0)  加入收藏
SpringBoot 玩一玩代码混淆,防止反编译代码泄露
编译简单就是把代码跑一哈,然后我们的代码 .java文件 就被编译成了 .class 文件反编译就是针对编译生成的 jar/war 包 里面的 .class 文件 逆向还原回来,可以看到你的代码写的...【详细内容】
2022-11-20  Search: 代码混淆  点击:(562)  评论:(0)  加入收藏
JS代码混淆加密:赋值花指令
JS代码混淆加密,有很多加密技术,本文演示赋值花指令。该技术可以将赋值内容进行花指令化,增加代码阅读难度。如下所示:首先来到JShaman网站,输入要测试的代码: 在配置中,有众多混...【详细内容】
2022-09-16  Search: 代码混淆  点击:(360)  评论:(0)  加入收藏
JShaman JS代码混淆加密效果
关键字:js加密、js混淆、js代码混淆加密JShaman是专业的JS代码混淆加密平台,拥有数十种自研JS代码保护技术。以下展示部分功能效果。注1:代码中红色、绿色字符为加密前后差异内...【详细内容】
2022-08-17  Search: 代码混淆  点击:(387)  评论:(0)  加入收藏
许可证lisence校验和代码混淆的实现原理
源码https://gitee.com/pingfanrenbiji/lic-auth利用jdk keytool工具制作证书利用jdk keytool工具生成证书keytool -genkeypair -keysize 1024 -validity 3650 -alias "秘钥...【详细内容】
2022-06-17  Search: 代码混淆  点击:(320)  评论:(0)  加入收藏
JS代码安全之路:用JS对JS代码混淆加密
作者:JShaman.com:w2sft内容预告:本文将实例讲解以下JS代码混淆加密技术:方法名转义和转码、成员表达式转IIFE、函数标准化、数值混淆、布尔型常量值混淆、二进制表达式转为调用...【详细内容】
2021-09-03  Search: 代码混淆  点击:(530)  评论:(0)  加入收藏
多种JS代码混淆加密,效果一览
演示代码如下,用JShaman对这段代码进行混淆加密:function demo(){ alert("hello www.jshaman.com");}demo(); 一、通用版1、配置选项:压缩代码。保护效果:function demo(){al...【详细内容】
2021-05-28  Search: 代码混淆  点击:(580)  评论:(0)  加入收藏
▌简易百科推荐
企业网站被攻击主要表现在哪些方面?
建企业网站只是功能实现,如果网站代码不够严谨有漏洞,再漂亮的网站也只是摆设,潜在风险害人害己。所以在建网站之初就一定要考虑好这个问题,如果系统建设不是强项可以选择一套主...【详细内容】
2023-12-18  三七一网络    Tags:网站   点击:(85)  评论:(0)  加入收藏
网站频繁被劫持怎么办?
域名劫持是互联网攻击的一种方式,通过攻击域名解析服务器(DNS),或伪造域名解析服务器(DNS)的方法,把目标网站域名解析到错误的IP地址从而实现用户无法访问目标网站的目的或者蓄意或...【详细内容】
2023-12-07  帝恩思DNS    Tags:被劫持   点击:(180)  评论:(0)  加入收藏
不可不知的Web安全指南
Web 已成为备受瞩目的攻击媒介,而 Web 安全对于确保企业的业务安全至关重要。如今黑客行为是一个公认的行业,而犯罪企业比以往任何时候都更加复杂且联系更加紧密。攻击一直在...【详细内容】
2023-09-18  云尖软件    Tags:Web安全   点击:(240)  评论:(0)  加入收藏
电商网站应对CC攻击的四大利器!
CC攻击是DDOS(分布式拒绝攻击)攻击的一种恶意手段,其原理是通过代理服务器或肉鸡向受害主机不断发起大量数据包,使目标服务器资源耗尽,导致其崩溃宕机。其特点在于使用真实且分散...【详细内容】
2023-07-19  诺必达云服务    Tags:CC攻击   点击:(205)  评论:(0)  加入收藏
你知道什么是堡垒机吗
在当今数字化时代,网络安全对于企业和组织来说至关重要。为了保护敏感数据和系统免受未经授权的访问和攻击,堡垒机成为一种必备工具。本文将介绍什么是堡垒机、其工作原理以及...【详细内容】
2023-07-14  职场小达人欢晓    Tags:堡垒机   点击:(144)  评论:(0)  加入收藏
如何防止黑客入侵服务器 预防黑客入侵有效方法
随着网络科技发展迅速,网络黑客手段越来越高明,不少人曾遭遇服务器被黑出现版本被盗,文件丢失,到那时候再补救就为时已晚了,那么平时如何防止黑客入侵服务器呢?一、采用NTFS文件系...【详细内容】
2023-05-25  芳芳分享汇    Tags:黑客入侵   点击:(304)  评论:(0)  加入收藏
我的网站被黑了,该如何排除漏洞并修复安全问题
随着时代的发展网站使用的频率是逐步增加。然而,随着互联网技术的不断进步,网站安全问题也引起了广泛关注。其中,最严重的问题是网站被黑客攻击。那么,何谓网站被黑?它可能会给企...【详细内容】
2023-05-18  Sinesafe网站安全    Tags:网站被黑   点击:(306)  评论:(0)  加入收藏
保护服务器机房物理安全的五种优秀实践
服务器机房是数字企业的心脏。无论是企业家还是经验丰富的IT专业人员,都知道服务器机房的安全性至关重要。如果没有采用适当的物理安全措施,其服务器很容易受到盗窃、人为破坏...【详细内容】
2023-05-17    企业网D1Net  Tags:服务器   点击:(288)  评论:(0)  加入收藏
CMS身份验证,保护您的网站!
在当今数字时代,网站安全至关重要。CMS是许多网站使用的内容管理系统,它们有助于管理和维护网站的内容。然而,CMS也是黑客攻击的常见目标,因此保护CMS非常重要。其中一个关键步...【详细内容】
2023-05-16  芳芳聊日常    Tags:身份验证   点击:(295)  评论:(0)  加入收藏
Linux系统服务器如何防止端口攻击?
端口攻击是指攻击者利用开放的端口来进入服务器、读取敏感信息和进行其他恶意行为。要防止 Linux 服务器的端口攻击,可以采取以下措施:1.配置防火墙:防火墙可以过滤非法流量,保...【详细内容】
2023-05-12  汽车车门的养护    Tags:端口攻击   点击:(351)  评论:(0)  加入收藏
站内最新
站内热门
站内头条