使用ProGuard进行Android代码混淆…如何知道它被混淆了?

我有一个Android项目,我最近通过与ProGuard的混淆运行后发布到市场。

该项目出口没有任何复杂性,但我怎么知道它被混淆了? 有什么我可以做的来validation混淆是否成功?

尝试逆向工程自己的应用程序。 看看您在代码中可以阅读的内容。

使用以下问题:

将DEX反编译成Java源代码

http://www.taranfx.com/decompile-reverse-engineer-android-apk

查找dump.txtmapping.txtseeds.txtusage.txt 。 它们可能位于项目目录的proguard文件夹中。 这些是在代码上运行ProGuard时创建的。

这些填充了有关混淆的信息,特别有用的是mapping.txt ,它显示了ProGuard将您的各种成员名称转换为。

DISCALIMER :我不是decompileandroid.com的所有者,我没有付钱来推广它。 我很开心,对这项服务很满意。

实际上有一种比获取几种不同工具并将其中一种工具的输出传递给另一种更简单的方法(这当然可以让您更好地控制正在发生的事情)。 您可以使用该服务

decompileandroid.com

基本上你上传和.apk文件,它为你做了所有这些步骤。 然后,您可以下载包含反编译源的.zip文件。

您可以先上传内置调试模式的.apk,然后上传.apk内置的发布模式。 只需确保build.gradle文件中的标志minifyEnabled在发布版本中设置为true

在我的情况下,差异非常明显 – 我的大多数类在缩小的构建中被命名为a,b,c等。