天天看點

JAVA 代碼混淆準備工作

準備工作

此次案例使用官方 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.目錄如下内容

JAVA 代碼混淆準備工作
  • 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.使用

  1. 把需要混淆的 jar 包放到剛才的目錄下
  2. 修改 config.xml的 jar 部分,寫上被混淆 jar 的名字和混淆後 jar 的名字
  3. 輕按兩下 RunAllatori.bat,會生成一個新 jar

5.測試

1.如果輕按兩下 MouseGesturesOriginal.bat 和 MouseGesturesObfuscated.bat 的結果一樣,說明混淆成功。

2.使用反編譯工具 jd-gui.exe 檢視混淆後的 jar 包,會發現除了public 修飾的方法都被混淆

注意:常量的值不會被混淆,處理方案是,放到方法中即可實作混淆

如果有哪些不對的地方煩請指認,先行感謝