chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SpringBoot玩一玩代碼混淆,防止反編譯代碼泄露

jf_ro2CN3Fa ? 來(lái)源:芋道源碼 ? 作者:芋道源碼 ? 2022-11-23 10:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群


編譯

簡(jiǎn)單就是把代碼跑一哈,然后我們的代碼 .java文件 就被編譯成了 .class 文件

a35b132a-6ad3-11ed-8abf-dac502259ad0.png

基于 Spring Boot + MyBatis Plus + Vue & Element 實(shí)現(xiàn)的后臺(tái)管理系統(tǒng) + 用戶小程序,支持 RBAC 動(dòng)態(tài)權(quán)限、多租戶、數(shù)據(jù)權(quán)限、工作流、三方登錄、支付、短信、商城等功能

  • 項(xiàng)目地址:https://github.com/YunaiV/ruoyi-vue-pro
  • 視頻教程:https://doc.iocoder.cn/video/

反編譯

就是針對(duì)編譯生成的 jar/war 包 里面的 .class 文件 逆向還原回來(lái),可以看到你的代碼寫的啥。

比較常用的反編譯工具 JD-GUI ,直接把編譯好的jar丟進(jìn)去,大部分都能反編譯看到源碼:

a39ec7dc-6ad3-11ed-8abf-dac502259ad0.png

那如果不想給別人反編譯看自己寫的代碼呢?

怎么做?

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實(shí)現(xiàn)的后臺(tái)管理系統(tǒng) + 用戶小程序,支持 RBAC 動(dòng)態(tài)權(quán)限、多租戶、數(shù)據(jù)權(quán)限、工作流、三方登錄、支付、短信、商城等功能

  • 項(xiàng)目地址:https://github.com/YunaiV/yudao-cloud
  • 視頻教程:https://doc.iocoder.cn/video/

混淆

該篇玩的代碼混淆 ,是其中一種手段。

我給你看,但你反編譯看到的不是真正的代碼。

先看一張效果示例圖 :

a3c97f68-6ad3-11ed-8abf-dac502259ad0.png

開(kāi)搞

正文

先看一下我們混淆一個(gè)項(xiàng)目代碼,要做啥?

a3ebd982-6ad3-11ed-8abf-dac502259ad0.png

一共就兩步

第一步, 在項(xiàng)目路徑下,新增一份文件 proguard.cfg :

proguard.cfg

#指定Java的版本
-target1.8
#proguard會(huì)對(duì)代碼進(jìn)行優(yōu)化壓縮,他會(huì)刪除從未使用的類或者類成員變量等
-dontshrink
#是否關(guān)閉字節(jié)碼級(jí)別的優(yōu)化,如果不開(kāi)啟則設(shè)置如下配置
-dontoptimize
#混淆時(shí)不生成大小寫混合的類名,默認(rèn)是可以大小寫混合
-dontusemixedcaseclassnames
#對(duì)于類成員的命名的混淆采取唯一策略
-useuniqueclassmembernames
#混淆時(shí)不生成大小寫混合的類名,默認(rèn)是可以大小寫混合
-dontusemixedcaseclassnames
#混淆類名之后,對(duì)使用Class.forName('className')之類的地方進(jìn)行相應(yīng)替代
-adaptclassstrings

#對(duì)異常、注解信息予以保留
-keepattributesExceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod
#此選項(xiàng)將保存接口中的所有原始名稱(不混淆)-->
-keepnamesinterface**{*;}
#此選項(xiàng)將保存所有軟件包中的所有原始接口文件(不進(jìn)行混淆)
#-keepinterface*extends*{*;}
#保留參數(shù)名,因?yàn)?a  target="_blank">控制器,或者M(jìn)ybatis等接口的參數(shù)如果混淆會(huì)導(dǎo)致無(wú)法接受參數(shù),xml文件找不到參數(shù)
-keepparameternames
#保留枚舉成員及方法
-keepclassmembersenum*{*;}
#不混淆所有類,保存原始定義的注釋-
-keepclassmembersclass*{
@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
-keeppublicclasscom.example.myproguarddemo.MyproguarddemoApplication{
publicstaticvoidmain(java.lang.String[]);
}

注意點(diǎn):

a4092028-6ad3-11ed-8abf-dac502259ad0.png

其余的看注釋,可以配置哪些類不參與混淆,哪些枚舉保留,哪些方法名不混淆等等。

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

build標(biāo)簽里面改動(dòng)加入一下配置

<build>
<plugins>
<plugin>
<groupId>com.github.wvengengroupId>
<artifactId>proguard-maven-pluginartifactId>
<version>2.6.0version>
<executions>

<execution>
<phase>packagephase>
<goals>
<goal>proguardgoal>
goals>
execution>
executions>
<configuration>

<injar>${project.build.finalName}.jarinjar>

<outjar>${project.build.finalName}.jaroutjar>

<obfuscate>trueobfuscate>

<proguardInclude>${project.basedir}/proguard.cfgproguardInclude>

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

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

<outputDirectory>${project.basedir}/targetoutputDirectory>

<options>

options>
configuration>
plugin>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
<executions>
<execution>
<goals>
<goal>repackagegoal>
goals>
<configuration>
<mainClass>com.example.myproguarddemo.MyproguarddemoApplicationmainClass>
configuration>
execution>
executions>
plugin>
plugins>
build>

注意點(diǎn):

a426238a-6ad3-11ed-8abf-dac502259ad0.pnga443bbd4-6ad3-11ed-8abf-dac502259ad0.png

然后可以看到:

a45c2b24-6ad3-11ed-8abf-dac502259ad0.png

然后點(diǎn)擊package,正常執(zhí)行編譯打包流程就可以 :

a473ce1e-6ad3-11ed-8abf-dac502259ad0.png

然后可以看到j(luò)ar的生成:

a49a9878-6ad3-11ed-8abf-dac502259ad0.png

看看效果:

a4ba91b4-6ad3-11ed-8abf-dac502259ad0.png

好了,該篇就到這。



審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    2997

    瀏覽量

    115610
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4940

    瀏覽量

    73078
  • spring
    +關(guān)注

    關(guān)注

    0

    文章

    341

    瀏覽量

    15762
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    686

    瀏覽量

    34934
  • SpringBoot
    +關(guān)注

    關(guān)注

    0

    文章

    177

    瀏覽量

    624

原文標(biāo)題:SpringBoot 玩一玩代碼混淆,防止反編譯代碼泄露

文章出處:【微信號(hào):芋道源碼,微信公眾號(hào):芋道源碼】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    HarmonyOS應(yīng)用代碼混淆技術(shù)方案

    代碼混淆技術(shù)可以增加代碼的復(fù)雜性和模糊性,從而提高攻擊者分析代碼的難度。
    的頭像 發(fā)表于 11-21 16:17 ?5305次閱讀
    HarmonyOS應(yīng)用<b class='flag-5'>代碼</b><b class='flag-5'>混淆</b>技術(shù)方案

    編譯器如何指定代碼的地址段?

    我在官方 gcc 的基礎(chǔ)上添加了自定義指令,目前可以正確編譯出匯編代碼,但是我該如何指定匯編結(jié)果的地址段,讓生成的代碼符合蜂鳥(niǎo)的地址分配呢?求助大神幫助指導(dǎo)下,thx~
    發(fā)表于 11-10 06:06

    ArkGuard混淆工具使用指南

    ArkGuard是款源碼混淆工具,提供基礎(chǔ)混淆功能。當(dāng)軟件發(fā)布后,其代碼很容易被他人獲取分析,通過(guò)閱讀清晰的變量名、函數(shù)名,攻擊者或競(jìng)爭(zhēng)者可以非常輕松地理解
    的頭像 發(fā)表于 09-28 16:05 ?651次閱讀
    ArkGuard<b class='flag-5'>混淆</b>工具使用指南

    東莞AI潮簽下億元出海大單,加速國(guó)產(chǎn)芯片走向普及

    生產(chǎn)基地,全國(guó)近85%的潮產(chǎn)自這里,全球四分之的動(dòng)漫衍生品由東莞制造。據(jù)不完全統(tǒng)計(jì),2024年?yáng)|莞全市潮規(guī)上限上企業(yè)160家,實(shí)現(xiàn)營(yíng)收近238億元,同比增長(zhǎng)19%。今年上半年,東莞有進(jìn)出口實(shí)績(jī)的玩具企業(yè)達(dá)940家,出口玩具
    的頭像 發(fā)表于 09-08 07:07 ?3931次閱讀

    移遠(yuǎn)通信 × 奧飛娛樂(lè),共同打造AI潮2.0時(shí)代

    上?!?dāng)童年記憶中的“喜羊羊”不再只是屏幕里的動(dòng)畫角色,而是化身能傾聽(tīng)心聲、感知情緒的智能伙伴,場(chǎng)由AI技術(shù)驅(qū)動(dòng)的潮革命已悄然來(lái)臨。 ? 作為全球領(lǐng)先的物聯(lián)網(wǎng)整體解決方案供應(yīng)商,移遠(yuǎn)通信憑借
    發(fā)表于 06-30 17:31 ?1463次閱讀
    移遠(yuǎn)通信 × 奧飛娛樂(lè),共同打造AI潮<b class='flag-5'>玩</b>2.0時(shí)代

    移遠(yuǎn)通信 × 奧飛娛樂(lè),共同打造AI潮2.0時(shí)代

    當(dāng)童年記憶中的“喜羊羊”不再只是屏幕里的動(dòng)畫角色,而是化身能傾聽(tīng)心聲、感知情緒的智能伙伴,場(chǎng)由AI技術(shù)驅(qū)動(dòng)的潮革命已悄然來(lái)臨。作為全球領(lǐng)先的物聯(lián)網(wǎng)整體解決方案供應(yīng)商,移遠(yuǎn)通信憑借前瞻性的AI
    的頭像 發(fā)表于 06-30 17:02 ?885次閱讀
    移遠(yuǎn)通信 × 奧飛娛樂(lè),共同打造AI潮<b class='flag-5'>玩</b>2.0時(shí)代

    【經(jīng)驗(yàn)分享】玩轉(zhuǎn)FPGA串口通信:從“幻覺(jué)調(diào)試”到代碼解析

    FPGA開(kāi)發(fā),思路先行!FPGA板子,讀代碼是基本功!尤其對(duì)從C語(yǔ)言轉(zhuǎn)戰(zhàn)FPGA的“寶貝們”來(lái)說(shuō),適應(yīng)流水線(pipeline)編程可能需要點(diǎn)時(shí)間。上篇點(diǎn)燈代碼解讀了基礎(chǔ),而如果能親手寫出串口通訊
    的頭像 發(fā)表于 06-05 08:05 ?867次閱讀
    【經(jīng)驗(yàn)分享】玩轉(zhuǎn)FPGA串口通信:從“幻覺(jué)調(diào)試”到<b class='flag-5'>代碼</b>解析

    云里物里電子價(jià)簽顯示方案助力潮行業(yè)數(shù)字化升級(jí)

    從“小眾收藏”到“大眾消費(fèi)”,潮行業(yè)正在粉絲藏品轉(zhuǎn)變?yōu)榇蟊娤M(fèi)品。據(jù)市場(chǎng)調(diào)研數(shù)據(jù)顯示,中國(guó)潮市場(chǎng)規(guī)模已突破千億元,消費(fèi)者對(duì)產(chǎn)品信息更新速度、互動(dòng)體驗(yàn)及個(gè)性化展示的需求日益增長(zhǎng)。
    的頭像 發(fā)表于 04-23 09:10 ?596次閱讀

    美移動(dòng)AI解決方案再拓展:全新AI卷發(fā)分析,將AI發(fā)質(zhì)檢測(cè)技術(shù)推向新高度

    體驗(yàn)。 上海2025年2月13日?/美通社/ -- 全球領(lǐng)先的增強(qiáng)現(xiàn)實(shí)(AR)和人工智能(AI)美妝科技領(lǐng)導(dǎo)者——美移動(dòng)(紐交所代碼:PERF)宣布推出AI卷發(fā)分析解決方案。作為美移動(dòng)全面的AI發(fā)質(zhì)分析套件的最新成員,該套件
    的頭像 發(fā)表于 02-13 16:42 ?501次閱讀

    代碼加密、源代碼防泄漏c/c++與git服務(wù)器開(kāi)發(fā)環(huán)境

    代碼加密對(duì)于很多研發(fā)性單位來(lái)說(shuō)是至關(guān)重要的,當(dāng)然每家企業(yè)的業(yè)務(wù)需求不同所用的開(kāi)發(fā)環(huán)境及開(kāi)發(fā)語(yǔ)言也不盡相同,今天主要來(lái)講下c++及git開(kāi)發(fā)環(huán)境的源代碼防泄密保護(hù)方案。企業(yè)源代碼泄密
    的頭像 發(fā)表于 02-12 15:26 ?855次閱讀
    源<b class='flag-5'>代碼</b>加密、源<b class='flag-5'>代碼</b>防泄漏c/c++與git服務(wù)器開(kāi)發(fā)環(huán)境

    15行代碼引發(fā)1800多行編譯錯(cuò)誤:問(wèn)題排查挑戰(zhàn)

    寫了 15 行代碼編譯報(bào)錯(cuò)竟然高達(dá) 1800 多行,這種奔潰的瞬間應(yīng)該有很多同學(xué)遇到過(guò)。 代碼分為兩塊,個(gè)頭文件,個(gè)源文件。 test
    的頭像 發(fā)表于 02-12 11:10 ?673次閱讀

    分析C語(yǔ)言代碼結(jié)構(gòu)的設(shè)計(jì)問(wèn)題

    來(lái)分析個(gè)C語(yǔ)言代碼結(jié)構(gòu)的設(shè)計(jì)問(wèn)題。 這段代碼,使用了兩次malloc,分別給 p1 和 p2 申請(qǐng)了內(nèi)存。用完后,內(nèi)存釋放,防止內(nèi)存泄漏。 大家覺(jué)得,這樣的
    的頭像 發(fā)表于 02-11 09:31 ?645次閱讀

    什么樣的代碼會(huì)被編譯器優(yōu)化

    現(xiàn)在的編譯器有多智能,可能你辛辛苦苦寫的代碼,在編譯器看來(lái)就是幾句廢話,直接被刪除掉。
    的頭像 發(fā)表于 01-16 16:38 ?925次閱讀

    EE-147:調(diào)整TigerSHARC DSP編譯器的C源代碼

    電子發(fā)燒友網(wǎng)站提供《EE-147:調(diào)整TigerSHARC DSP編譯器的C源代碼.pdf》資料免費(fèi)下載
    發(fā)表于 01-15 16:11 ?0次下載
    EE-147:調(diào)整TigerSHARC DSP<b class='flag-5'>編譯</b>器的C源<b class='flag-5'>代碼</b>

    EE-149: 調(diào)試Blackfin處理器編譯C源代碼

    電子發(fā)燒友網(wǎng)站提供《EE-149: 調(diào)試Blackfin處理器編譯C源代碼.pdf》資料免費(fèi)下載
    發(fā)表于 01-08 14:48 ?0次下載
    EE-149: 調(diào)試Blackfin處理器<b class='flag-5'>編譯</b>C源<b class='flag-5'>代碼</b>