android项目反编译和混淆

来源:互联网 发布:网络大电影的盈利规则 编辑:程序博客网 时间:2024/06/05 08:09
关于反编译
所用工具为:apktool 
用途:反编译xml和一些静态资源(如图片),业界内常通过此来获取UI资源。
操作步骤:1:下载apktool并安装(最好配置PATH环境变量)
 2:运行命令 apktool d xxx.apk  D:/temp/
运行完后会在D:/temp下产生反编译的内容
所用工具:dex2jar、jadgui
用途:反编译工程的源代码
操作步骤:1:下载dex2jar、jadgui
2:将要反编译的apk文件,改格式为zip或rar用压缩程序打开,取出里面的classes.dex
3:对取出的classes.dex运行 dex2jar classes.dex (注意路径)
运行后,在classes.dex同目录产生classes_dex2jar.jar
4:用jadgui.exe 打开所生成的classes_dex2jar.jar就可以看到源码了(混淆后的代码的包名、类名、字段名会是a、b、aa、bc之类的)
关于android项目混淆
所用工具:proguard(google自2.3开始支持)
操作步骤:1:将project.properties中proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt这句的注释打开
2:将proguard-project.txt文件内容改为:
-injars      bin/classes-injars      libs-outjars     bin/classes-processed.jar-libraryjars D:/android-sdk_r12-windows/android-sdk-windows/platforms/android-7/android.jar-dontpreverify-repackageclasses ''-allowaccessmodification-optimizations !code/simplification/arithmetic-keepattributes *Annotation*-dontwarn android.support.**-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 com.baidu.mapapi.*-keep class com.baidu.mapapi.** {*; }-keep class com.baidu.platform.** {*; }-keep class com.baidu.location.** {*; }-keep class com.baidu.vi.** {*; }-keep public class * extends android.view.View {    public <init>(android.content.Context);    public <init>(android.content.Context, android.util.AttributeSet);    public <init>(android.content.Context, android.util.AttributeSet, int);    public void set*(...);}-keepclasseswithmembers class * {    public <init>(android.content.Context, android.util.AttributeSet);}-keepclasseswithmembers class * {    public <init>(android.content.Context, android.util.AttributeSet, int);}-keepclassmembers class * implements android.os.Parcelable {    static android.os.Parcelable$Creator CREATOR;}-keepclassmembers class **.R$* {    public static <fields>;}

原创粉丝点击