當前位置:編程學習大全網 - 源碼下載 - javaweb項目做混淆的詳細步驟

javaweb項目做混淆的詳細步驟

混淆的工具很多,最常用的為retroguard.

Java 代碼編譯後生成的 .class 中包含有源代碼中的所有信息(不包括註釋),尤其是在其中保存有調試信息的時候。所以壹個按照正常方式編譯的 Java .class 文件可以非常輕易地被反編譯。反編譯工具有很多種,其中非常強大的壹種是 jad。

為了避免出現這種情況,保護開發者的勞動,又有壹種叫做 Java 混淆器的工具被開發出來。Java 混淆器的作用是對編譯好的代碼進行混淆,使得其無法被反編譯或者反編譯後的代碼混亂難懂。Java 混淆器也有很多種,其中比較強大的壹種是 RetroGuard(只說比較強大是因為我對其功效還是有些懷疑的)。

這裏我介紹壹下 RetroGuard 的使用方法。

將下載的 .tar.gz 或者 .zip 文件解壓。有用的只有 retroguard.jar 壹個文件,其它的是源代碼和文檔。

RetroGuard 是針對 jar 文件做混淆的。使用之前需要先配置壹下。可以手工編輯配置文件,更好的方法是使用 RetroGuard 提供的 GUI 工具來生成配置文件。使用方法如下:

java -classpath retroguard.jar;xxx.jar;yyy.zip;... RGgui

然後在 GUI 的 Wizard 中設置各個參數。上面的 -classpath 中應該列出要混淆的 jar 所依賴的所有的包。

RGgui 的詳細使用方法可以看 RetroGuard 的文檔 docs.html。

配置文件生成後,就可以運行 RetroGuard 進行混淆了。使用方法如下:

java -classpath xxx.jar;yyy.zip;... RetroGuard vvv-unofb.jar vvv.jar vvv.rgs vvv.log

其中 vvv-unofb.jar 是未混淆的 jar 文件,vvv.jar 是混淆後生成的 jar 文件,vvv.rgs 是配置文件,vvv.log 是日誌文件。缺省的配置文件名稱為 script.rgs,缺省的日誌文件名稱為 retroguard.log。

在生成配置文件時需要註意的是:

1、所有 public 的類名、方法名、變量名應該全部保留。因為所有設置為 public 的內容代表了整個包對外表現的接口。若某個內容不想為外界訪問,就不應該設置為 public 的。

2、若包中某個類使用了 java.lang.Class 或者 java.lang.ClassLoader 中的某個方法加載了壹個類,若這個類在包外,不需要特別處理;若這個類在包內,則需要保留這個類的類名,否則混淆後會找不到這個類。

3、在包中的所有調試信息(源文件名、行號、變量/參數信息等等)應全部刪除。

  • 上一篇:java課程分享java大數據發展前景如何
  • 下一篇:關於名人成才的故事
  • copyright 2024編程學習大全網