日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > android 如何防止代碼被反編譯

android 如何防止代碼被反編譯

來源:程序員人生   發布時間:2015-02-13 08:41:06 閱讀次數:4305次

作為Android利用開發者,不能不面對1個為難的局面,就是自己辛辛苦苦開發的利用可以被他人很輕易的就反編譯出來。

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

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

在工程的"default.properties"中添加這樣1句話“proguard.config=proguard.cfg”
打包簽名后的.apk就是混淆的,其實我們只要做1步就能夠了就是在"default.properties"中添加這樣1句話“proguard.config=proguard.cfg”就能夠了。

如果想要更加復雜地混淆代碼,可以詳細地對該文件進行配置.




由于apk是Android虛擬機加載的,它有1定的規范,加密apk后Dalvik沒法辨認apk了。完全避免是不可能的,總有人能夠破解你的代碼。但是有幾種
方式來提高被反編譯取代碼的難度:

1 關鍵代碼使用jni調用本地代碼,用c或c++編寫,因此相對照較難于反編譯

2 混淆java代碼。混淆是不改變代碼邏輯的情況下,增加無用代碼,或重命名,使反編譯后的源代碼難于看懂。

    網上開源的java代碼混淆工具較多,1般是用ant的方式來編譯的

android 混淆文件proguard.cfg詳解:

-injars  androidtest.jar【jar包所在地址】 
-outjars  out【輸出地址】

-libraryjars    'D:android-sdk-windowsplatformsandroid⑼android.jar' 【援用的庫的jar,用于解析injars所指定的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 * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService

-keep public abstract interface com.asqw.android.Listener{
public protected <methods>;  【所有方法不進行混淆】
}
-keep public class com.asqw.android{
public void Start(java.lang.String); 【對該方法不進行混淆】
}

-keepclasseswithmembernames class * { 【保護指定的類和類的成員的名稱,如果所有指定的類成員出席(在緊縮步驟以后)】

native <methods>;
}

-keepclasseswithmembers class * { 【保護指定的類和類的成員,但條件是所有指定的類和類成員是要存在。】
public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}

-keepclassmembers class * extends android.app.Activity {【保護指定類的成員,如果此類遭到保護他們會保護的更好 】
public void *(android.view.View);
}

-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}

-keep class * implements android.os.Parcelable {【保護指定的類文件和類的成員】
public static final android.os.Parcelable$Creator *;
}

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 视频二区在线 | 国产理论一区二区三区 | 91亚洲成人 | 亚洲国产精品99久久久久久久久 | 男女交配视频网站 | 成人自拍视频在线 | 国产精品久久久久久久久久 | 欧美区一| 一区二区三区四区精品 | 柠檬福利第一导航在线 | 一级欧美黄色片 | 精品国产欧美一区二区三区成人 | 日韩精品中文字幕在线 | 亚洲国产精品久久 | 成人毛片在线播放器 | 999免费视频| 欧美不卡 | 日韩电影av在线 | 欧美视频一区二区三区 | 蜜桃二区 | 成人免费视频网站在线看 | 亚洲男人天堂视频 | 精品一区久久久 | 国产精品久久久久久中文字 | 四虎884aa成人精品最新 | 日韩在线黄 | jizz中国女人高潮 | 精品少妇一区二区三区视频免付费 | www99| 国产精品日韩一区 | 欧美黑人性视频 | 亚洲精彩免费视频 | 国产区视频在线 | 香蕉视频在线免费看 | 亚洲成人天堂 | 精品福利视频一区二区三区 | 中文字幕91 | 99久久精品国产毛片 | 日韩综合一区 | 中文字幕日韩视频 | 久久精品欧美 |