国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android之如何防止apk程序被反編譯的代碼實現

2020-02-21 17:33:12
字體:
來源:轉載
供稿:網友

Android應用程序的開發人員,必須面對這樣一個很尷尬的局面,就是努力工作的應用程序很容易被他人反編譯,下面是Android之如何防止apk程序被反編譯的代碼實現,跟著武林技術頻道小編帶你來了解一下吧!

Google似乎也發現了這個問題,從SDK2.3開始我們可以看到在android-sdk-windows/tools/下面多了一proguard文件夾

proguard是一個java代碼混淆的工具,通過proguard,別人即使反編譯你的apk包,也只會看到一些讓人很難看懂的代碼,從而達到保護代碼的作用。

下面具體說一說怎么樣讓SDK2.3下的proguard.cfg文件起作用,先來看看android-sdk-windows/tools/lib/proguard.cfg的內容:

復制代碼 代碼如下:

-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 * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
-keepclasseswithmembernames class * {
native ;
}
-keepclasseswithmembernames class * {
public (android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembernames class * {
public (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 *;
}


從腳本中可以看到,混淆中保留了繼承自Activity、Service、Application、BroadcastReceiver、ContentProvider等基本組件以及com.android.vending.licensing.ILicensingService,
并保留了所有的Native變量名及類名,所有類中部分以設定了固定參數格式的構造函數,枚舉等等。(詳細信息請參考/examples中的例子及注釋。)

讓proguard.cfg起作用的做法很簡單,就是在eclipse自動生成的default.properties文件中加上一句“proguard.config=proguard.cfg”就可以了

完整的default.properties文件應該如下:

復制代碼 代碼如下:

# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system use,
# "build.properties", and override values to adapt the script to your
# project structure.
# Project target.
target=android-9
proguard.config=proguard.cfg


大功告成,正常的編譯簽名后就可以防止代碼被反編譯了。反編譯經過代碼混淆的apk得到的代碼應該類似于下面的效果,是很難看懂的:

如果您使用的是2.3之前的SDK版本也沒關系,把上面的proguard.cfg文件復制一份放到項目中,然后進行相同的操作即可

通過武林技術頻道小編介紹的Android之如何防止apk程序被反編譯的代碼實現,相信大家都有了一定的了解,如需了解更多的相關資訊,請繼續關注武林技術頻道吧!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东宁县| 德州市| 建昌县| 玉树县| 苗栗县| 化州市| 雷州市| 明溪县| 东辽县| 江安县| 潼关县| 桂阳县| 萨迦县| 荣昌县| 株洲县| 成武县| 冕宁县| 呈贡县| 沙洋县| 双鸭山市| 奉化市| 海晏县| 淮北市| 黎城县| 烟台市| 竹北市| 靖江市| 隆安县| 屯留县| 山阴县| 滦平县| 乾安县| 进贤县| 五常市| 磴口县| 广安市| 伊川县| 钟祥市| 鄢陵县| 玉门市| 永年县|