如何反向工程/反编译使用ProGuard模糊处理的Android APK?
不幸的是,我丢失了我的一个应用程序的源代码,我使用ProGuard对其进行了模糊处理。如何反向工程/反编译使用ProGuard模糊处理的Android APK?,android,apk,reverse-engineering,proguard,decompiling,Android,Apk,Reverse Engineering,Proguard,Decompiling,不幸的是,我丢失了我的一个应用程序的源代码,我使用ProGuard对其进行了模糊处理。 我还有由ProGuard生成的.apk文件和一些配置文件: dump.txt mapping.txt seeds.txt usage.txt 到目前为止我做了什么? 使用解码的资源文件。 耶,我把那些拿回来了 提取.apk文件,并使用将classes.dex文件转换为.jar文件 如果我现在使用查看源代码(.jar文件),我会看到我的模糊代码。大概是这样的: class c { TextView a;
我还有由ProGuard生成的
.apk
文件和一些配置文件:
dump.txt
mapping.txt
seeds.txt
usage.txt
耶,我把那些拿回来了
.apk
文件,并使用将classes.dex
文件转换为.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文件将模糊代码重新映射到我的原始源代码?我想查看我自己的变量名/方法签名。或者这些文件只能用于跟踪崩溃报告堆栈跟踪吗?您要查找的所有内容都在mapping.txt文件中,但我从未见过一个工具可以将其全部反转。Proguard执行的一些混淆不仅仅是简单的方法和变量重命名,所以很有可能您无法执行您试图执行的操作。Proguard下载附带的retrace.jar可能会让您走得更远,但我非常确定您必须将其用于stacktrace文件