常用的混淆配置,常用混淆配置

來源:互聯網
上載者:User

常用的混淆配置,常用混淆配置

前段時間開發了好多的項目,但是往往都是最後混淆這塊費了好大勁的,現在我把這些常用的混淆配置寫下來,僅供參考吧!

-optimizationpasses 5-dontusemixedcaseclassnames-dontskipnonpubliclibraryclasses-dontwarn-dontpreverify-dontskipnonpubliclibraryclassmembers-ignorewarnings-verbose-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*  -libraryjars libs/afinal_0.5.1_bin.jar
# mode 混淆-keep class shzb.zhinaibo.mode.** { *; }
# FastJson 混淆# 如果是有mode的get和set方法,需要設定下面這條語句-dontwarn com.alibaba.fastjson.**-keep class com.alibaba.fastjson.** { *; }-keepattributes Signature#-keepattributes *Annotation*
# v4 包的混淆#-libraryjars ./libs/android-support-v4.jar#-dontwarn android.support.**-dontwarn android.support.v4.**-dontwarn **CompatHoneycomb-dontwarn **CompatHoneycombMR2-dontwarn **CompatCreatorHoneycombMR2-keep interface android.support.v4.app.** { *; }-keep class android.support.v4.** { *; }-keep public class * extends android.support.v4.**-keep public class * extends android.app.Fragment


# slidingmenu 的混淆-dontwarn com.jeremyfeinstein.slidingmenu.lib.**-keep class com.jeremyfeinstein.slidingmenu.lib.** { *; }

# ActionBarSherlock混淆-dontwarn com.actionbarsherlock.**-keep class com.actionbarsherlock.** { *; }-keep interface com.actionbarsherlock.** { *; }
-keep class * extends java.lang.annotation.Annotation { *; }
# 保持自訂控制項類不被混淆-keep public class * extends com.zhibaicc.android.adapter.PackageAdapter
-keepclasseswithmembers class * {                                                  public <init>(android.content.Context, android.util.AttributeSet);}
-keepclasseswithmembers class * {    public <init>(android.content.Context, android.util.AttributeSet, int);}
-keepclassmembers class * implements android.os.Parcelable {    static android.os.Parcelable$Creator CREATOR;}
-keep public class * implements java.io.Serializable {        public *;}
# afinal混淆-dontwarn net.tsz.afinal.**-keep class net.tsz.afinal.** { *; }-keep public class * extends net.tsz.afinal.** -keep public interface net.tsz.afinal.** {*;}
-keepclasseswithmembers class shzb.zhinaibo.base.** {     <fields>;     <methods>;}
# universal-image-loader 混淆-dontwarn com.nostra13.universalimageloader.**-keep class com.nostra13.universalimageloader.** { *; }

# ShareSDK 混淆-dontwarn cn.sharesdk.**-keep class cn.sharesdk.** { *; }


混淆配置不正確,查看混淆配置事項是什?

雙清,格式化system試試實在不行,格式化emmc,前提是你內建卡裡沒放什麼重要的東西
 
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、在包中的所有調試資訊(源檔案名稱、行號、變數/參數資訊等等)應全部刪除。
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.