App安全之代碼混淆

來源:互聯網
上載者:User

標籤:反編譯   代碼混淆   android   

參考:

http://www.cnblogs.com/sunzn/archive/2013/03/06/2946952.html

http://www.apkbus.com/android-240707-1-1.html


1、在項目根目錄找到project.properties檔案,將中圈出來的代碼注釋去除,即申明我們的混淆檔案為proguard-project.txt


2、在項目根目錄找到proguard-project.txt檔案,按需求添加修改以下代碼:

# 指定代碼的壓縮層級-optimizationpasses 5# 不使用大小寫混合-dontusemixedcaseclassnames# 不混淆第三方jar                                          -dontskipnonpubliclibraryclasses# 混淆時不做預校正-dontpreverify# 混淆時記錄日誌-verbose# 混淆時所採用的演算法-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*# 申明外部jar包不被混淆-libraryjars libs/alipay.jar# 不需要混淆的部分,如系統組件和API的類:-keep public class * extends android.app.Fragment  -keep public class * extends android.app.Activity-keep public class * extends android.app.Application-keep public class * extends android.app.Service-keep public class * extends android.content.BroadcastReceiver-keep public class * extends android.content.ContentProvider-keep public class * extends android.app.backup.BackupAgentHelper-keep public class * extends android.preference.Preference-keep public class * extends android.support.v4.**# 預設proguard 會檢查每一個引用是否正確,但是第三方庫裡面往往有些不會用到的類# 沒有正確引用。如果不配置的話,系統就會報錯-dontwarn android.support.**-dontwarn com.alibaba.fastjson.**-dontwarn org.eclipse.persistence.**-dontwarn com.amap.api.**-dontwarn javax.persistence.**# 指定的類成員被保留-keepclassmembers class * extends android.app.Activity {public void *(android.view.View);}

3、上面注釋說的挺詳細的,但重要的是以下幾點:

(1) 這裡申明的jar包只能是本項目中引用的,項目引用的其他工程中的jar包,無需在此混淆檔案中申明:

# 申明外部jar包不被混淆-libraryjars libs/alipay.jar
(2)以下申明需要根據自己項目中引用的jar包去添加,例如我就是先不添加,直接匯出apk檔案,這時在Console中我們可以看到報錯資訊,再逐一添加報錯的類路徑,例如com.amap.api.**就是申明com.amap.api.xxx都不會被混淆:

# 預設proguard 會檢查每一個引用是否正確,但是第三方庫裡面往往有些不會用到的類# 沒有正確引用。如果不配置的話,系統就會報錯-dontwarn android.support.**-dontwarn com.alibaba.fastjson.**-dontwarn org.eclipse.persistence.**-dontwarn com.amap.api.**-dontwarn javax.persistence.**


4、最後,是混淆後反編譯看到的結果,其中的類名、方法名、變數名,都自動混淆成別人看不明白的名稱:


App安全之代碼混淆

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.