我有一个Android项目,我最近在使用ProGuard混淆后将其发布到市场。
项目导出没有任何复杂性,但我怎么知道它被混淆了?我能做些什么来证明混淆是成功的吗?
查找dump.txt
, mapping.txt
, seeds.txt
和usage.txt
。它们可能位于项目目录的proguard
文件夹中。当ProGuard在你的代码上运行时,这些是创建的。
这些都是关于混淆的信息,特别有用的是mapping.txt
,它显示了ProGuard将您的各种成员名转换成的内容。
尝试反向工程您自己的应用程序。看看你能在代码中读到什么。
使用下列问题:
将DEX反编译成Java源代码
http://www.taranfx.com/decompile-reverse-engineer-android-apkDISCALIMER:我不是decompileandroid.com的所有者,我没有得到报酬来推广它。我是一名开发人员,我对这项服务很满意。
实际上有一种比获取几个不同的工具并将其中一个工具的输出传递给另一个工具更简单的方法(当然,这可以更好地控制正在发生的事情)。您可以使用
服务decompileandroid.com基本上你上传一个。apk文件,它会为你完成所有这些步骤。然后,您可以下载一个.zip文件,其中包含反编译的源代码。
你可以先上传调试模式下的。apk,然后再上传发布模式下的。apk。只需确保在发布版本的build.gradle
文件中将标志minifyEnabled
设置为true
。
在我的例子中,差异是非常明显的-我的大多数类在缩小的构建中被命名为a,b,c等。