準備工作
此次案例使用官方 Demo,不使用任何插件
環境:windows 10
1.Allatori簡介
Allatori 是第二代 Java 混淆器,可為您的知識産權提供全方位的保護。
盡管大多數第二代混淆器都提供了值得保護的級别,但我們已經在Allatori中開發了許多附加功能,以使對代碼進行逆向工程幾乎不可能。
Allatori 不僅會混淆,還會最大程度地減少應用程式的大小并提高速度,同時您和您的團隊以外的任何人都無法讀取您的代碼。作為每個現代 Java 混淆器,Allatori 具有完整的水印功能,進而有可能為您的軟體提供适當的許可!
如果有必要保護您的軟體,并且要減少軟體的大小和縮短處理時間,則可以使用 Allatori 混淆器。
- - 摘自ALLATORI JAVA混淆器官網
2.下載下傳
1.官網最新 Allatori-7.1-Demo.zip 下載下傳
2.CSDN下載下傳(包含反編譯工具 jd-gui.exe)
3.内容簡介
1.解壓下載下傳的壓縮包 Allatori-7.1-Demo.zip
然後進入目錄 xx/Allatori-7.1-Demotutorialstep01files
2.目錄如下内容

- Clean.bat:清除 log.xml 以及生成混淆的檔案
- config.xml:混淆的配置檔案
- mousegestures-1.2.jar、test.jar:被混淆的 jar 包
- MouseGesturesOriginal.bat:混淆前 jar 的測試指令
- MouseGesturesObfuscated.bat:混淆後 jar 的測試指令
- RunAllatori.bat:執行生成混淆 jar 的指令
3.config.xml 詳解
混淆的成功與否在于次配置的對與錯。官方預設對除了 public 修飾的類、方法、區域放開,其餘的都會混淆處理
<config>
<input>
<jar in="test.jar" out="obf-test.jar"/>
<jar in="mousegestures-1.2.jar" out="obf-mousegestures-1.2.jar"/>
</input>
<keep-names>
<class access="protected+">
<field access="protected+"/>
<method access="protected+"/>
</class>
</keep-names>
<property name="log-file" value="log.xml"/>
</config>
<jar in="你的 jar 包名稱.jar" out="混淆後的 jar 包名稱.jar"/>
4.使用
- 把需要混淆的 jar 包放到剛才的目錄下
- 修改 config.xml的 jar 部分,寫上被混淆 jar 的名字和混淆後 jar 的名字
- 輕按兩下 RunAllatori.bat,會生成一個新 jar
5.測試
1.如果輕按兩下 MouseGesturesOriginal.bat 和 MouseGesturesObfuscated.bat 的結果一樣,說明混淆成功。
2.使用反編譯工具 jd-gui.exe 檢視混淆後的 jar 包,會發現除了public 修飾的方法都被混淆
注意:常量的值不會被混淆,處理方案是,放到方法中即可實作混淆
如果有哪些不對的地方煩請指認,先行感謝