摘要:前言最近在項(xiàng)目中碰到個一個場景,我們需要把自己的項(xiàng)目包部署到一個第三方的服務(wù)器上,雖然雙方互相信任,但是綜合考慮,避免別人拿到包后可以很快的編譯出源碼,我們決定給代碼加一層混淆,雖然此方法不能從根源上解決問題,但是做了一層混淆,也可以增加閱
前言
最近在項(xiàng)目中碰到個一個場景,我們需要把自己的java項(xiàng)目jar包部署到一個第三方的服務(wù)器上,雖然雙方互相信任,但是綜合考慮,避免別人拿到j(luò)ar包后可以很快的編譯出源碼,我們決定給代碼加一層混淆,雖然此方法不能從根源上解決問題,但是做了一層混淆,也可以增加閱讀源碼的難度,總結(jié)了一下,寫下這篇文章。
如何反編譯java代碼我用的是mac電腦,從官網(wǎng):http://java-decompiler.github...下載JD-GUI,官網(wǎng)有很多版本,下載后安裝打開即可,導(dǎo)入你想反編譯的jar,我這里隨便找了個jar包做演示
細(xì)心的小伙伴肯定發(fā)現(xiàn)了,上面的截圖有的包名是a,b,c這樣命名的,但凡有點(diǎn)節(jié)操的程序員都不會這樣命名的,這就是被混淆后的代碼,讓人不會一眼看出來代碼里面的邏輯,效果會像下面這樣
可以看到類名,包名都被修改了
我們以之前springboot項(xiàng)目為例,進(jìn)行service層的代碼的混淆,混淆前效果如下:
接下來我們只需要在pom里面加入如下插件
org.apache.maven.plugins maven-compiler-plugin 3.1 1.7 1.7 UTF-8 com.github.wvengen proguard-maven-plugin 2.0.14 package proguard 6.1.0beta2 ${project.build.finalName}.jar ${project.build.finalName}.jar true true ${java.home}/lib/rt.jar net.sf.proguard proguard-base 6.1.0beta2 org.springframework.boot spring-boot-maven-plugin
執(zhí)行打包命令:mvn package,會看到生成如下
我們看到了生成了不只一個jar包,還有一些別的文件,這個我們放后面介紹,我們先看下劃紅線的jar反編譯后的效果
可以看到我們針對service包下面的類混淆成功了
zplxjj_proguard_base.jar是沒有經(jīng)過混淆的jar
兩個.txt文件說明了混淆前和混淆后的對應(yīng)關(guān)系
如果項(xiàng)目中引入了spring框架,類的注入id要保持唯一性,否則就要重寫生成bean的id規(guī)則的方法
更多pom文件細(xì)節(jié)可以參考:https://www.guardsquare.com/e...
更多文章可關(guān)注個人博客:https://www.zplxjj.com和公眾號
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/74918.html
摘要:小節(jié)也有類似的栗子,其結(jié)論是靜態(tài)方法不具有多態(tài)性。來自一個有趣的問題靜態(tài)字段論述的問題大致是說以上兩個類中各有幾個方法本質(zhì)其實(shí)就是有無時的區(qū)別。 Demo1 來自關(guān)于java中static一個有意思的小案例: class Employee { private static Employee employee = new Employee(); public static...
摘要:二進(jìn)制位,是計(jì)算機(jī)內(nèi)部數(shù)據(jù)儲存的最小單位,是一個位二進(jìn)制數(shù)。由于源代碼也是一個文本文件,所以,當(dāng)你的源代碼中包含中文的時候,在保存源代碼時,就需要務(wù)必指定保存為編碼。 計(jì)算機(jī)存儲的幾個概念 想要徹底搞清楚編碼問題,我們必須要先搞清楚計(jì)算機(jī)是怎么存儲數(shù)據(jù)的,這就涉及到了計(jì)算機(jī)基礎(chǔ)的幾個概念了,開篇我們就先來捋捋這幾個容易混淆的概念。 bit 二進(jìn)制位, 是計(jì)算機(jī)內(nèi)部數(shù)據(jù)儲存的最小單位,1...
閱讀 2123·2021-10-12 10:12
閱讀 832·2021-09-24 09:47
閱讀 1246·2021-08-19 11:12
閱讀 3538·2019-08-29 13:06
閱讀 747·2019-08-26 11:43
閱讀 2642·2019-08-23 17:20
閱讀 1199·2019-08-23 16:52
閱讀 2663·2019-08-23 14:27