如何对使用ProGuard进行模糊处理的Android APK进行逆向工程/反编译?

时间:2013-02-09 13:10:35

标签: android apk reverse-engineering proguard decompiling

不幸的是,我丢失了使用ProGuard混淆了我的一个应用程序的源代码 我仍然有.apk文件和一些由ProGuard生成的配置文件:

  1. dump.txt
  2. mapping.txt
  3. seeds.txt
  4. usage.txt
  5. 到目前为止我做了什么?

    1. 使用apktool解码资源文件 是的,我已经回来了!

    2. 提取的.apk文件,并使用dex2jarclasses.dex文件转换为.jar文件。

    3. 如果我现在使用JD-Gui查看源代码(.jar文件),我会看到我的混淆代码。像这样:

      class c {
        TextView a;
        TextView b;
        TextView c;
        TextView d;
        CheckBox e;
      }
      
      protected List a(Uri[] paramArrayOfUri) { ... }
      
      protected void a(List paramList) { ... }
      

      另外一些循环看起来有点奇怪。我不写无限循环:

      while (true) {
           if (!localIterator.hasNext())
              return localArrayList;
           ProviderInfo[] arrayOfProviderInfo = ((PackageInfo)localIterator.next()).providers;
           if (arrayOfProviderInfo == null)
              continue;
           int i = arrayOfProviderInfo.length;
      }
      

      是否可以使用任何ProGuard的.txt文件将混淆的代码重新映射到我的原始源代码?我想看看我自己的变量名称/方法签名 或者这些文件只能用于跟踪崩溃报告堆栈跟踪吗?

1 个答案:

答案 0 :(得分:3)

你正在寻找的所有内容都在mapping.txt文件中,但我从来没有见过一个可以逆转它的工具。 Proguard执行的一些混淆不仅仅是方法和变量的简单重命名,因此您很可能无法完成您正在尝试的操作。 Proguard下载附带的retrace.jar可能会让你更进一步,但我很确定你必须使用堆栈跟踪文件。

相关问题