當(dāng)下軟件園 / 匯聚當(dāng)下最新最酷的軟件下載站!
當(dāng)下軟件園
您的位置: 首頁(yè) > 應(yīng)用軟件 > 編程工具 > ProGuard(JAVA代碼混淆工具) V5.3.3 最新免費(fèi)版
ProGuard(JAVA代碼混淆工具) V5.3.3 最新免費(fèi)版 / ProGuard下載 版本
  • 軟件大小:2.92M
  • 軟件語(yǔ)言:英文
  • 軟件類型:國(guó)外軟件
  • 軟件授權(quán):免費(fèi)軟件
  • 更新時(shí)間:2017-09-21
  • 軟件類別:編程工具
  • 軟件官網(wǎng):http://virtualinsta360.com
  • 應(yīng)用平臺(tái):Win2003,WinXP,Vista,Win7,Win8

網(wǎng)友評(píng)分: 分?jǐn)?shù) 9.7

軟件非常好(100% 軟件不好用(0%

  ProGuard是一款非常實(shí)用的JAVA代碼混淆工具,由于Android開(kāi)發(fā)的應(yīng)用程序主要是使用JAVA代碼編寫(xiě),但是JAVA代碼很容易被反編譯,為了很好的保護(hù)JAVA源代碼,我們需要對(duì)編譯好后的class文件進(jìn)行混淆,這款軟件就應(yīng)運(yùn)而生,集壓縮器、優(yōu)化器、混淆器、預(yù)校驗(yàn)器于一身。

  ProGuard是一個(gè)命令行工具,并提供了圖形化用戶界面,它也可以結(jié)合Ant或J2ME Wireless Toolkit使用。通過(guò)ProGuard得到的更精簡(jiǎn)的jar文件意味著只需要更小的存儲(chǔ)空間混淆環(huán)節(jié)會(huì)用無(wú)意義的短變量去重命名類、變量、方法。這些步驟讓代碼更精簡(jiǎn),更高效,也更難被逆向破解。

ProGuard

【功能介紹】

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

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

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

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

【工作原理】

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

  混淆就是移除沒(méi)有用到的代碼,然后對(duì)代碼里面的類、變量、方法重命名為人可讀性很差的簡(jiǎn)短名字。

  那么有一個(gè)問(wèn)題,ProGuard怎么知道這個(gè)代碼沒(méi)有被用到呢?

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

  那么這個(gè)入口點(diǎn)怎么來(lái)呢?就是從ProGuard的配置文件來(lái),只要這個(gè)配置了,那么就不會(huì)被移除。

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

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

  常量表達(dá)式求值

  刪除不必要的字段存取

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

  刪除不必要的分支

  刪除不必要的比較和instanceof驗(yàn)證

  刪除未使用的代碼

  刪除只寫(xiě)字段

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

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

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

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

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

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

  選擇性的刪除日志代碼

  實(shí)際的優(yōu)化效果是依賴于你的代碼和執(zhí)行代碼的虛擬機(jī)的。簡(jiǎn)單的虛擬機(jī)比有復(fù)雜JIT編譯器的高級(jí)虛擬機(jī)更有效。無(wú)論如何,你的字節(jié)碼會(huì)變得更小。

  仍有一些明顯需要優(yōu)化的技術(shù)不被支持:

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

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

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

  Optimizations that require escape analysis

軟件特別說(shuō)明

標(biāo)簽: ProGuard JAVA 編程

其他版本下載
網(wǎng)友評(píng)論
回頂部 去下載

關(guān)于本站|下載幫助|下載聲明|軟件發(fā)布|聯(lián)系我們

Copyright ? 2005-2024 virtualinsta360.com.All rights reserved.

浙ICP備06019006號(hào)-1 浙公網(wǎng)安備33038102330474號(hào)