我有一个Android项目,最近我通过ProGuard模糊处理后发布到市场。与ProGuard的Android代码混淆......如何知道它被混淆了?
该项目导出没有任何并发症,但我怎么知道它被混淆了?我能做些什么来验证混淆是否成功?
我有一个Android项目,最近我通过ProGuard模糊处理后发布到市场。与ProGuard的Android代码混淆......如何知道它被混淆了?
该项目导出没有任何并发症,但我怎么知道它被混淆了?我能做些什么来验证混淆是否成功?
尝试对您自己的应用程序进行逆向工程。看看你可以在代码中读到什么。
使用以下问题:
decompiling DEX into Java sourcecode
http://www.taranfx.com/decompile-reverse-engineer-android-apk
查找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等。
哎呀!我的意思是,我相信你已经知道上传一个可调试的和非混淆的构建到Web服务器的影响。毕竟,我们是在谈论混淆,因此第三方无法阅读您的代码。虽然这个网站看起来不错,但我不确定我会信任它。 – dell116
是的,当然在大多数情况下,您不想将APK上传到远程服务器。尤其是商业项目。我只是把它作为一个更简单的选择。在我的情况下,这是一个测试项目,所以我没有什么可以关心的。当然,如果这也不是问题,那么总是可以只上传混淆的版本。在这种情况下,人们会看到混淆的效果。 –
谢谢你。我解编了两个不同的应用程序,一个是我混淆的应用程序,另一个是我没有混淆的应用程序。来自两个应用程序的代码(非模糊和混淆)看起来都是一样的。变量名称已更改,但类名称和其他内容保持不变。这是如何混淆的作品?我没有混淆的项目如何在变量名称中发生变化? – dell116
这取决于你如何设置proguard工作......但我没有太多的经验! –