【发布时间】:2020-04-27 10:58:55
【问题描述】:
我在 Google Play 上有一个 android 应用程序,其中的原始文件丢失了。我的电脑上有所有东西,通常我会备份所有东西,但不知何故我失去了这个项目。
所以,我从我的 Google Play 控制台下载了 APK,但里面的内容与原始项目的结构完全不同。包内有一个 Classes.dex 文件/文件夹,我似乎无法打开。
是否有一种相对简单的方法来对包进行逆向工程并取回原始项目?
提前非常感谢。
【问题讨论】:
-
几个月前我写了一篇关于这个的文章(意大利语):informatica-libera.net/content/…
-
@FrancescoGalgani,感谢分享。不幸的是,我的意大利语书面和口语能力相当差;-)。 (虽然我说葡萄牙语是另一种基于拉丁语的语言,但这并没有多大帮助,从我第一眼看到的情况来看。)在我尝试翻译之前,是否有可能实现上述目标?
-
正如 Shai 回答的那样,主要问题是混淆。在我链接的页面中,查找文本
Form hi = new Form("Decompile Me", BoxLayout.y());。你会发现三行代码。在它们下方,是使用 jadx 进行反编译的结果:该代码接近原始 Codename One 代码,因为没有混淆(调试构建)。接下来的三行代码显示了在混淆(发布构建)的情况下反编译的结果:它非常不可读。所以,如果你使用了混淆(这是发布版本的默认设置),反编译不是很有用。 -
没有太多时间可以浪费了,那么......没有必要再深入挖掘,因为我绝对没有更改默认设置中的任何内容。
标签: codenameone reverse-engineering