15

残念ながら、ProGuardを使用して難読化したアプリの1つのソースコードを失いました。ProGuardによって生成されたファイルといくつかの構成ファイル
がまだあります。.apk

  1. dump.txt
  2. mapping.txt
  3. seeds.txt
  4. usage.txt

私はこれまで何をしましたか?

  1. apktoolを使用してデコードされたリソースファイル。
    ええ、私はそれらを取り戻しました!

  2. ファイルを抽出し、 dex2jarを使用してファイルをファイルに.apk変換しました。classes.dex.jar

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ファイルのいずれかを使用して、難読化されたコードを元のソースコードに再マップすることは可能ですか?自分の変数名/メソッドシグネチャを見たいのですが。
または、これらのファイルは、クラッシュレポートスタックトレースを追跡するためにのみ使用できますか?

4

1 に答える 1

3

探しているものはすべて mapping.txt ファイルにありますが、すべてを元に戻すツールは見たことがありません。Proguard が実行する難読化の一部は、単にメソッドと変数の名前を変更するだけではないため、実行しようとしていることができない可能性があります。Proguard のダウンロードに付属する retrace.jar を使用すると、もう少し先に進むことができますが、それをスタックトレース ファイルと一緒に使用する必要があると確信しています。

于 2013-03-08T23:11:36.853 に答える