Android 簡單的代碼混淆

來源:互聯網
上載者:User

標籤:android   style   blog   http   io   color   ar   os   java   

Android的代碼混淆是開發人員需要瞭解的相關知識,它能夠防止android應用程式的反編譯。因為android程式多數是java語言開發的,而java代碼很容易被反編譯,所以為了使android應用程式代碼應用一定的安全性,進行android代碼的混淆是非常有必要的。

在瞭解代碼混淆之前,先瞭解android的反編譯。進行android的反編譯需要藉助兩個工具dex2jar和jd-gui。

1.代碼的反編譯

在兩個工具準備好之後,將apk檔案的直接解壓。在解壓後的檔案中,將classes.dex複製到dex2jar的檔案夾中。輸入命令:dex2jar.bat classes.dex ,斷行符號。在dex2jar檔案夾中會產生classes_dex2jar壓縮檔。用jd-gui開啟該檔案,即可看到android應用程式的原始碼。

2.代碼混淆

在android工程中添加proguard.cfg.檔案。在project.properties中添加proguard.config=proguard.cfg。

-ignorewarnings-libraryjars libs/android-support-v4.jar-libraryjars libs/gson-2.2.4.jar-optimizationpasses 5-dontusemixedcaseclassnames-dontskipnonpubliclibraryclasses-dontpreverify-verbose-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*-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 com.android.vending.licensing.ILicensingService-keepclasseswithmembernames class * {    native <methods>;}-keepclasseswithmembernames class * {    public <init>(android.content.Context, android.util.AttributeSet);}-keepclasseswithmembernames class * {    public <init>(android.content.Context, android.util.AttributeSet, int);}-keepclassmembers enum * {    public static **[] values();    public static ** valueOf(java.lang.String);}-keep class * implements android.os.Parcelable {  public static final android.os.Parcelable$Creator *;}
proguard.cfg

3.項目打包

右鍵工程,選擇androidtools-export unsinged application package。對打包的apk進行反編譯。

 

可以看到,代碼都已經進行編譯過了。未簽名的apk包並不能夠安裝,還需要將apk進行簽名。

Android 簡單的代碼混淆

聯繫我們

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