Android代码与ProGuard混淆…人们如何知道它';她被弄糊涂了?

Android代码与ProGuard混淆…人们如何知道它';她被弄糊涂了?,android,obfuscation,proguard,Android,Obfuscation,Proguard,我有一个Android项目,我最近通过ProGuard的模糊处理发布到市场上 项目导出时没有任何复杂情况,但我如何知道它已被混淆?我可以做些什么来验证模糊处理是否成功?查找dump.txt、mapping.txt、seeds.txt和usage.txt。它们可能位于项目目录下的proguard文件夹中。这些是在对代码运行ProGuard时创建的 这些都是关于模糊处理的信息,特别有用的是mapping.txt,它显示了ProGuard将您的各种成员名称转化为什么。尝试对您自己的应用程序进行反向工程

我有一个Android项目,我最近通过ProGuard的模糊处理发布到市场上


项目导出时没有任何复杂情况,但我如何知道它已被混淆?我可以做些什么来验证模糊处理是否成功?

查找
dump.txt
mapping.txt
seeds.txt
usage.txt
。它们可能位于项目目录下的
proguard
文件夹中。这些是在对代码运行ProGuard时创建的


这些都是关于模糊处理的信息,特别有用的是
mapping.txt
,它显示了ProGuard将您的各种成员名称转化为什么。

尝试对您自己的应用程序进行反向工程。看看你能从代码中读到什么

使用以下问题:


DISCALIMER:我不是decompileandroid.com的所有者,也没有人付钱给我推广它。我是一个开发人员,对这项服务很满意

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

基本上,您可以上传和.apk文件,它会为您完成所有这些步骤。 然后可以下载一个.zip文件,其中包含反编译的源代码

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


在我的例子中,差异是非常明显的——我的大多数类在缩小的构建中被命名为a、b、c等。

我在项目目录中有一个ProGuard文件夹,但里面有Zlich…没有任何内容…我是否可以假设ProGuard没有正确地混淆我的代码?这些文件可能在其他目录中吗?您的项目下是否有任何
proguard
文件夹?如果没有,我会说它可能没有正确运行。是的..proguard文件夹在那里…但没有任何内容…我在硬盘上的任何地方都找不到你提到的任何文件…所以当我通过proguard运行它时,一定有东西坏了…嗯…哦…你可以取消发布你的应用程序,直到你可以正确地进行模糊处理,但这是否有帮助取决于你自己。谢谢你。我反编译了两个不同的应用程序,一个我混淆了,另一个我没有混淆。两个应用程序(未模糊化和模糊化)的代码看起来相同。变量名已更改,但类名和其他内容保持不变。模糊处理就是这样工作的吗?为什么我没有混淆的项目变量名发生了变化?这取决于你如何设置proguard来工作。。。但是我没有太多的经验!哎呀!我的意思是,我相信您已经知道将可调试且未混淆的构建上传到web服务器的含义。毕竟,我们讨论的是模糊处理,这样第三方就无法读取您的代码。虽然这个网站表面上看起来不错,但我不确定我是否会信任它。是的,当然在大多数情况下,你都不想将你的APK上传到远程服务器。尤其是商业项目。我给这个只是作为一个更容易的选择。在我的情况下,这是一个测试项目,所以我没有什么可担心的。当然,如果不成问题的话,可以只上传模糊版本。在这种情况下,我们只需看看模糊处理的效果如何。