不幸的是,我丟失了我使用ProGuard進行混淆處理的其中一個應用程序的源代碼。
我仍然有.apk
文件,這是由ProGuard的生成一些配置文件:如何反向工程/反編譯使用ProGuard混淆的Android APK?
dump.txt
mapping.txt
seeds.txt
usage.txt
我有什麼迄今所做?使用apktool
解碼的資源文件。
耶,我已經得到了回來!提取
.apk
文件並使用dex2jar將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文件我原來的源代碼?我想看看我自己的變量名稱/方法簽名。
或者這些文件只能用於跟蹤崩潰報告堆棧跟蹤嗎?