2 u012784504 u012784504 于 2016.02.23 16:26 提问

混淆代码问题,反编译

我proguard-rules加的混淆代码:

 -optimizationpasses 5          # 指定代码的压缩级别
-dontusemixedcaseclassnames   # 是否使用大小写混合
-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 方法不被混淆
    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 * {     # 保持枚举 enum 类不被混淆
    public static **[] values();
    public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable { # 保持 Parcelable 不被混淆
    public static final android.os.Parcelable$Creator *;
}
#Jpush
-dontoptimize
-dontpreverify

-dontwarn cn.jpush.**
-keep class cn.jpush.** { *;}

#==================gson==========================
-dontwarn com.google.**
-keep class com.google.gson.** {*;}

#==================protobuf======================
-dontwarn com.google.**
-keep class com.google.protobuf.** {*;}

build.gradle

   buildTypes {
        release {

            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

然后APK能导出,也能安装运行,但是我去反编译APK,显示的是

图片说明
图片说明

而不是别人那种aa,bb,c用字母表示的类和变量什么的,我就不清楚我的是不是正确的,还是没设置好
图片说明

1个回答

u012784504
u012784504   2016.02.23 16:28

对了,别人叫我去下载4.x及以上版本的proguard.jar, 并替换Android Sdk "tools\proguard\lib\proguard.jar",不过我这路径下没有这文件,直接复制过去了

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
android混淆代码与反编译
android studio已经提供了默认的混淆代码,我们要做的是, 1、在build.gradle中添加 buildTypes {         release {             minifyEnabled true             proguardFiles getDefaultProguardFile('proguard-android.txt'),
android 反编译---and---混淆代码
反编译资源:apktool.bat d -f taobao.apk<源文件> -o baotao02<目标目录>
Android 混淆代码总结 和 Android APK反编译(最新更新)
http://blog.csdn.net/vipzjyno1/article/details/21039349/ http://blog.csdn.net/vipzjyno1/article/details/21039349/  反编译 在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会
代码混淆与反编译
代码混淆 代码混淆就是代码加密,让别人看不到自己的代码,当然这只是相对的,并不能完全的加密,大公司都会有单独的加密方式,防止被窃取,这里讲的混淆只是灰常灰常简单的一种方式,其实就是一句话,但是也起到了加密的效果。 1、打开项目project.properties,如图: 2、在此文件下面添加一句话,如图: 好了。。完成加密操作。。灰常简单的加密方式吧。。 当然,加密的时候也可以选
c# 反编译与混淆代码的加密方法
转自http://baike.baidu.com/view/3803210.htm与 http://www.cnblogs.com/crazycxy/archive/2012/04/28/2474420.html 反编译 Reflector是由微软员工Lutz Roeder编写的免费程序。Reflector的出现使.NET程序员眼前豁然开朗,因为这个免费工具可以将.NET程序集中的
反编译混淆后的Java代码
将CLASS文件反编译后,会有一些十六进制数、虚拟机的指令在里面,现在好像没有软件来自动处理这些东西,那么只有动手了,这可非一日之功,找了几个简单的赋值、循环的小例子......  1:赋值反编译过来的代码如下:        Node node;        Node node1 = _$3.getChildNodes().item(0);        node1;       
转自郭霖大神的混淆代码
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/50451259  本来想自己写一篇反编译的,但是偶然的机会看到郭霖大神写的反编译,感觉要比自己想到的要全面多好多,不愧是大神,干脆把博文拉过来,好好研究下 混淆 本篇文章中介绍的混淆技术都是基于Android Studio的,Eclipse的用法也基本类似,但是就不
Android APK之代码混淆与反编译
首先示例一个Android项目 , 里面包含所需要的混淆脚本以及 一些经常使用的第三方Jar包 问题1 : 如果你创建的项目里没有自带proguard.cfg这个混淆脚本,那么说明你的SDK 小于2.3 或者 你的SDK信息不完整 解决的办法: 1) 更新SDK版本 2)在你的项目里自己建一个proguard.cfg脚本,当然你的proguard.c
代码混淆与反编译(郭霖)
http://blog.csdn.net/guolin_blog/article/details/49738023
混淆代码
介绍下操作流程(eclipse):1、打开混淆器:找到项目根目录下的project.properties文件,将“#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt”这行前的“#”删除即可;2、修改混淆配置文件:找到项目根目录下的proguard-project.txt文件,修改其中