首页 文章

Proguard不工作,eclipse(android)不是混淆

提问于
浏览
1

问题是使用最新版Proguard5.3.2收费的混淆 . 我的电脑环境是build,eclipse,android 22和java level 1.6 . 使用Proguard收费后,会创建dump.txt,mapping.txt,seeds.txt和usage.txt文件 .

但是,Obfuscation不适用于由导出签名的Android应用程序生成的apk . 请让我知道我错误地应用于源代码 .

关于简单的键事件,我附上了完整的sourcehttps://www.dropbox.com/s/2ir1y8xea28l9uj/KeyEvent.7z?dl=0) . 选项是默认选项(工具> proguard> proguard-android.txt),我没有改变任何东西

感谢您提前与我们进行合作,我期待很快收到您的回复 .

简单的一步

1 project.properties添加proguard路径

proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

proguard-android.txt android默认设置不编辑

2更新程序

proguard 5.3.2

3制作了proguard文件夹和文件

dump.txt , mapping.txt ,seeds.txt ,usage.txt

4导出单挑的Android应用程序

no error , made singned apk

5输出apk - > decomplie但不混淆mapping.txt

com.superdroid.test.event.key.MainActivity -> 
com.superdroid.test.event.key.MainActivity:
long mExitModeTime -> a

decomple apk源码

MainActivity.class not change (mExitModeTime -> a)
private long mExitModeTime = 0L;

3 回答

  • 0

    ProGuard不会混淆从 Activity 扩展的类,正如Eric LaFortune(ProGuard的原作者)回答here所述 .

    您可以通过检查 usage.txt 文件找到已经混淆的Java类的完整列表,而未保留的类列在 seeds.txt 中 .

  • 0

    我担心你实际上要做的是保存密码或一些其他静态字段,如字符串或int,你不想从apk中检索 . 不幸的是,你做不到 . 据我所知,常量将始终存在于apk中的某个位置,即使您没有将其放入活动中 . 如果有一些受保护的内容,如密码,那么你不应该硬编码 . 您必须有另一种模式才能将其纳入代码,例如让用户输入它 .

  • 0

    如果你想混淆所有的Activity类和所有字符串(比如密钥,密码......),你可以尝试另一种解决方案:Bg+ Anti Decompiler/Obfuscator

    Obfuscated sample

    public class l000001 extends Activity {
    static int ߤ¤=0,ߤ¥=0,ߤª=0;
    static List ߤº=null;
    static int[] ߤÞ=null;
    void ¢¢£() {
       ¢¢ = (AdView) findViewById(R.id.ad_view);
       ¢¢¢=null;
       {
          AdRequest ¢¢¤ = new AdRequest.Builder() .build();
          ¢¢.loadAd(¢¢¤);
          ¢¢º();
       }
     }
    

相关问题