Niestety, zgubiłem kod źródłowy jednej z moich aplikacji, które zaciemniłem za pomocą ProGuard.
Nadal mam plik .apk
i niektóre pliki konfiguracyjne, które zostały wygenerowane przez PROGUARD:Jak wykonać inżynierię wsteczną/dekompilować plik APK systemu Android, który został zaciemniony przy użyciu ProGuard?
dump.txt
mapping.txt
seeds.txt
usage.txt
Co zrobiłem do tej pory ?
pliki dekodowany z wykorzystaniem zasobów apktool.
Yay, mam je z powrotem!Wyekstrahowane
.apk
plików i przekonwertowaneclasses.dex
do pliku.jar
stosując dex2jar.
Gdybym teraz zobaczyć kod źródłowy (plik .jar) używając JD-Gui, widzę pogmatwanego kod. Coś takiego:
class c {
TextView a;
TextView b;
TextView c;
TextView d;
CheckBox e;
}
protected List a(Uri[] paramArrayOfUri) { ... }
protected void a(List paramList) { ... }
Również niektóre pętle wyglądają nieco dziwnie. Nie piszę nieskończone pętle:
while (true) {
if (!localIterator.hasNext())
return localArrayList;
ProviderInfo[] arrayOfProviderInfo = ((PackageInfo)localIterator.next()).providers;
if (arrayOfProviderInfo == null)
continue;
int i = arrayOfProviderInfo.length;
}
Czy możliwe jest ponowne mapowanie zaciemniony kod do mojego oryginalnego kodu źródłowego przy użyciu dowolnej z plików .txt PROGUARD za? Chciałbym zobaczyć własne podpisy nazw zmiennych/metod.
Czy te pliki mogą być używane tylko do śledzenia śladów stosu raportu awarii?