《Android如何防止apk程序被反编译.pdf》由会员分享,可在线阅读,更多相关《Android如何防止apk程序被反编译.pdf(1页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Adroid如何防止apk程序被反编译作为Adroid应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来。Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在adroid-sdk-widowstools下面多了一个proguard文件夹proguard是一个java代码混淆的工具,通过proguard,别人即使反编译你的apk包,也只会看到一些让人很难看懂的代码,从而达到保护代码的作用。下面具体说一说怎么样让SDK2.3下的proguard.cfg文件起作用,先来看看adroid-sdk-widowstoolslibproguard.c
2、fg的内容:html-optimizatiopasses 5-dotusemixedcaseclassames-dotskipopubliclibraryclasses-dotpreverify-verbose-optimizatios!code/simplificatio/arithmetic,!field/*,!class/mergig/*-keep public class*exteds adroid.app.Activity-keep public class*exteds adroid.app.Applicatio-keep public class*exteds adroid.ap
3、p.Service-keep public class*exteds adroid.cotet.BroadcastReceiver-keep public class*exteds adroid.cotet.CotetProvider-keep public class*exteds adroid.app.backup.BackupAgetHelper-keep public class*exteds adroid.preferece.Preferece-keep public class com.adroid.vedig.licesig.ILicesigService-keepclasses
4、withmemberames class*ative;-keepclasseswithmemberames class*public(adroid.cotet.Cotext,adroid.util.AttributeSet);-keepclasseswithmemberames class*public(adroid.cotet.Cotext,adroid.util.AttributeSet,it);-keepclassmembers eum*public static*values();public static*valueOf(java.lag.Strig);-keep class*imp
5、lemets adroid.os.Parcelable public static fial adroid.os.Parcelable$Creator*;从脚本中可以看到,混淆中保留了继承自Activity、Service、Applicatio、BroadcastReceiver、CotetProvider等基本组件以及com.adroid.vedig.licesig.ILicesigService,并保留了所有的Native变量名及类名,所有类中部分以设定了固定参数格式的构造函数,枚举等等。(详细信息请参考/examples中的例子及注释。)让proguard.cfg起作用的做法很简单,就是
6、在eclipse自动生成的default.properties文件中加上一句“proguard.cofig=proguard.cfg”就可以了完整的default.properties文件应该如下:html#This file is automatically geerated by Adroid Tools.#Do ot modify this file-YOUR CHANGES WILL BE ERASED!#This file must be checked i Versio Cotrol Systems.#To customize properties used by the At build system use,#build.properties,ad override values to adapt the script to your#project structure.#Project target.target=adroid-9proguard.cofig=proguard.cfg大功告成,正常的编译签名后就可以防止代码被反编译了。反编译经过代码混淆的apk得到的代码应该类似于下面的效果,是很难看懂的:如果您使用的是2.3之前的SDK版本也没关系,把上面的proguard.cfg文件复制一份放到项目中,然后进行相同的操作即可