西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
西西首頁 電腦軟件 安卓軟件 電腦游戲 安卓游戲 排行榜 專題合集

ProGuard

5.3.3 【java 代碼混淆工具】
  • ProGuard5.3.3 【java 代碼混淆工具】
  • 軟件大小:2.9M
  • 更新時間:2017-09-20 11:18
  • 軟件語言:中文
  • 軟件廠商:
  • 軟件類別:國產(chǎn)軟件 / 免費軟件 / 編程輔助
  • 軟件等級:3級
  • 應(yīng)用平臺:WinAll, Win7, win8
  • 官方網(wǎng)站:暫無
  • 應(yīng)用備案:
好評:50%
壞評:50%

軟件介紹

Android開發(fā)的應(yīng)用程序主要使用Java代碼編寫,但是Java代碼很容易被反編譯,為了很好的保護(hù)Java源代碼,我們需要對編譯好后的class文件進(jìn)行混淆。Proguard是一個Java類文件壓縮器、優(yōu)化器、混淆器、預(yù)校驗器。ProGuard是一個命令行工具,并提供了圖形化用戶界面,它也可以結(jié)合Ant或J2ME Wireless Toolkit使用。通過ProGuard得到的更精簡的jar文件意味著只需要更小的存儲空間混淆環(huán)節(jié)會用無意義的短變量去重命名類、變量、方法。這些步驟讓代碼更精簡,更高效,也更難被逆向(破解)。

ProGuard功能:

壓縮(Shrink):檢測并移除代碼中無用的類、字段、方法和特性(Attribute)。

優(yōu)化(Optimize):對字節(jié)碼進(jìn)行優(yōu)化,移除無用的指令。

混淆(Obfuscate):使用a,b,c,d這樣簡短而無意義的名稱,對類、字段和方法進(jìn)行重命名。

預(yù)檢(Preveirfy):在Java平臺上對處理后的代碼進(jìn)行預(yù)檢,確保加載的class文件是可執(zhí)行的。

ProGuard工作原理:

ProGuar由shrink、optimize、obfuscate和preveirfy四個步驟組成,每個步驟都是可選的,我們可以通過配置腳本來決定執(zhí)行其中的哪幾個步驟。

混淆就是移除沒有用到的代碼,然后對代碼里面的類、變量、方法重命名為人可讀性很差的簡短名字。

那么有一個問題,ProGuard怎么知道這個代碼沒有被用到呢?

這里引入一個Entry Point(入口點)概念,Entry Point是在ProGuard過程中不會被處理的類或方法。在壓縮的步驟中,ProGuard會從上述的Entry Point開始遞歸遍歷,搜索哪些類和類的成員在使用,對于沒有被使用的類和類的成員,就會在壓縮段丟棄,在接下來的優(yōu)化過程中,那些非Entry Point的類、方法都會被設(shè)置為private、static或final,不使用的參數(shù)會被移除,此外,有些方法會被標(biāo)記為內(nèi)聯(lián)的,在混淆的步驟中,ProGuard會對非Entry Point的類和方法進(jìn)行重命名。

那么這個入口點怎么來呢?就是從ProGuard的配置文件來,只要這個配置了,那么就不會被移除。

如何編寫一個ProGuard文件

有個三步走的過程:

基本混淆

針對APP的量身定制

針對第三方j(luò)ar包的解決方案

ProGuard支持那些種類的優(yōu)化: 

除了在壓縮操作刪除的無用類,字段和方法外,ProGuard也能在字節(jié)碼級提供性能優(yōu)化,內(nèi)部方法有: 

常量表達(dá)式求值

刪除不必要的字段存取

刪除不必要的方法調(diào)用

刪除不必要的分支

刪除不必要的比較和instanceof驗證

刪除未使用的代碼

刪除只寫字段

刪除未使用的方法參數(shù)

像push/pop簡化一樣的各種各樣的peephole優(yōu)化

在可能的情況下為類添加static和final修飾符

在可能的情況下為方法添加private, static和final修飾符

在可能的情況下使get/set方法成為內(nèi)聯(lián)的

當(dāng)接口只有一個實現(xiàn)類的時候,就取代它

選擇性的刪除日志代碼

實際的優(yōu)化效果是依賴于你的代碼和執(zhí)行代碼的虛擬機(jī)的。簡單的虛擬機(jī)比有復(fù)雜JIT編譯器的高級虛擬機(jī)更有效。無論如何,你的字節(jié)碼會變得更小。 
仍有一些明顯需要優(yōu)化的技術(shù)不被支持: 

使非final的常量字段成為內(nèi)聯(lián)

像get/set方法一樣使其他方法成為內(nèi)聯(lián)

將常量表達(dá)式移到循環(huán)之外

Optimizations that require escape analysis

軟件標(biāo)簽: ProGuard 代碼混淆

其他版本下載

發(fā)表評論

昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
查看所有(0)條評論 > 字?jǐn)?shù): 0/500

TOP
軟件下載