Allatori是一款java混淆器程序加殼工具,它可以更全的保護(hù)用戶(hù)的知識(shí)產(chǎn)權(quán),有多種保護(hù)方式,如名混淆,流混淆,調(diào)試信息混淆,字符串混淆功能,可以用war和ear操作,下面有附使用教程,歡迎免費(fèi)下載。
Allatori軟件特色
混淆是當(dāng)今構(gòu)建過(guò)程的重要組成部分。了解其重要性,我們特別注意和小心處理了這個(gè)問(wèn)題。Allatori團(tuán)隊(duì)取得了巨大的成果 - 我們已經(jīng)設(shè)法提供市場(chǎng)上最全面的功能,以最有效地保護(hù)您的知識(shí)產(chǎn)權(quán)。
Allatori Obfuscator具有保護(hù)Java軟件所需的所有功能,并且不斷增強(qiáng)和改進(jìn),以應(yīng)對(duì)作為尖端Java混淆器系統(tǒng)的挑戰(zhàn)。我們結(jié)合了所有經(jīng)典的混淆技術(shù)以及只能在Allatori中找到的創(chuàng)新。
功能介紹
一、 混淆器介紹
1、混淆出現(xiàn)的背景
Java是一種跨平臺(tái)的、解釋型語(yǔ)言,Java源代碼編譯成中間“字節(jié)碼”存儲(chǔ)于class文件中。由于跨平臺(tái)的需要,Java字節(jié)碼中包括了很多源代碼信息,如變量名、方法名,并且通過(guò)這些名稱(chēng)來(lái)訪(fǎng)問(wèn)變量和方法,這些符號(hào)帶有許多語(yǔ)義信息,很容易被反編譯成Java源代碼。為了防止這種現(xiàn)象,我們可以使用Java混淆器對(duì)Java字節(jié)碼進(jìn)行混淆。
2、混淆器的優(yōu)勢(shì)
混淆就是對(duì)發(fā)布出去的程序進(jìn)行重新組織和處理,使得處理后的代碼與處理前代碼完成相同的功能,而混淆后的代碼很難被反編譯,即使反編譯成功也很難得出程序的真正語(yǔ)義。被混淆過(guò)的程序代碼,仍然遵照原來(lái)的檔案格式和指令集,執(zhí)行結(jié)果也與混淆前一樣,只是混淆器將代碼中的所有變量、函數(shù)、類(lèi)的名稱(chēng)變?yōu)楹?jiǎn)短的英文字母代號(hào),在缺乏相應(yīng)的函數(shù)名和程序注釋的況下,即使被反編譯,也將難以閱讀。同時(shí)混淆是不可逆的,在混淆的過(guò)程中一些不影響正常運(yùn)行的信息將永久丟失,這些信息的丟失使程序變得更加難以理解。
混淆器的作用不僅僅是保護(hù)代碼,它也有精簡(jiǎn)編譯后程序大小的作用。由于以上介紹的縮短變量和函數(shù)名以及丟失部分信息的原因, 編譯后jar文件體積大約能減少25% ,這對(duì)當(dāng)前費(fèi)用較貴的無(wú)線(xiàn)網(wǎng)絡(luò)傳輸是有一定意義的。
Allatori怎么用
使用方法
1、文件結(jié)構(gòu)
解壓后的目錄
混淆時(shí)依賴(lài)的jar包
下面是官方帶的例子,里面有配置文件(config.xml)、運(yùn)行混淆的命令文件(RunAllatori.bat)、清除產(chǎn)生的新文件的命令文件(Clean.bat)、將要被混淆的jar文件(test.jar、mousegestures-1.2.jar)
示例圖
2、文件詳細(xì)說(shuō)明
圖中各個(gè)文件的內(nèi)容可以從下圖中看到:
1、Clean.bat
就是刪除生成的被混淆的文件和log文件
Clean.bat文件內(nèi)容
2、RunAllatori
調(diào)用Java命令運(yùn)行allatori.jar文件,并且加載config.xml配置文件
RunAllatori文件內(nèi)容
3、 config.xml
配置文件,是混淆過(guò)程中最重要的文件,需要用戶(hù)根據(jù)實(shí)際情況來(lái)配置
Config.xml文件內(nèi)容
4、 配置文件
config標(biāo)簽:這個(gè)是配置的根標(biāo)簽。
Jars標(biāo)簽:用來(lái)設(shè)置將要被混淆的jar(war,ear)文件。應(yīng)該至少包含一個(gè)嵌套的jar標(biāo)簽和dir標(biāo)簽來(lái)設(shè)置輸入和輸出文件。我們的例子中可以看到包含了兩個(gè)jar標(biāo)簽
Jar標(biāo)簽:有兩個(gè)屬性—in、out,分別表示將要被混淆的jar文件和混淆后輸出的文件
Keep-names標(biāo)簽:用來(lái)設(shè)置那些在混淆過(guò)程中不需要被重命名的類(lèi)、方法、變量。如果被混淆的應(yīng)用是個(gè)公共庫(kù),那么應(yīng)該保留所有的公共接口名字不被重命令;如果是個(gè)獨(dú)立的應(yīng)用程序,那么將至少保留主類(lèi)的名字不被重命名;當(dāng)使用到反射的時(shí)候,也要保持類(lèi)名和方法名字不被重命名
Property標(biāo)簽:用來(lái)設(shè)置不同的混淆特性的,它有兩個(gè)必備的屬性:name和value。Name可以設(shè)置為----log文件、字符串加密、控制混淆流程、重命名方式等
2、 混淆效果
混淆前
混淆前的代碼
混淆后的反編譯效果:
混淆后反編譯效果
四、在項(xiàng)目中實(shí)際應(yīng)用
我們拿定位服務(wù)器來(lái)進(jìn)行演示。
1、導(dǎo)出應(yīng)用為war包
選擇war file
選擇保存的路徑
點(diǎn)擊Finish
2、準(zhǔn)備lib包和編寫(xiě)配置文件
準(zhǔn)備的文件
Lib目錄里面是gmlc運(yùn)行所需要的jar包
配置文件
運(yùn)行文件
3、運(yùn)行開(kāi)始命令
雙擊RunAllatori.bat文件
運(yùn)行窗口
運(yùn)行完成后會(huì)生成兩個(gè)文件:gmlc.allobf.war、log.xml文件
混淆完成后
Log.xml文件內(nèi)容:
通過(guò)log.xml文件可以查看哪些類(lèi)、方法、變量被混淆后重命名成什么樣的名字
而gmlc.allobf.war就是混淆后的工件了,可以直接發(fā)布部署到tomcat的webapps目錄下,啟動(dòng)tomcat就可以訪(fǎng)問(wèn)了(當(dāng)然啟動(dòng)之前修改一下名字,改為gmlc.war)
- PC官方版
- 安卓官方手機(jī)版
- IOS官方手機(jī)版