如何将手机应用程序反编译回 kotlin 代码?

Posted

技术标签:

【中文标题】如何将手机应用程序反编译回 kotlin 代码?【英文标题】:How to decompile phone app back to kotlin code? 【发布时间】:2021-12-30 13:37:33 【问题描述】:

我最近丢失了所有应用程序的文件,但幸运的是,我的应用程序仍然保存在手机上。我在电脑上提取了应用程序,但我不知道下一步该怎么做。 应用程序是用 kotlin 编写的,我想将应用程序反编译为它,以便稍后在 android Studio 中修改应用程序。

屏幕截图显示了我现在拥有的所有文件。我真的很感谢所有的建议。

【问题讨论】:

如果 Kotlin 反编译器还存在,我会有点惊讶吗?你可以把它变成Java。 【参考方案1】:

这是 100% 的一个很好的例子,说明了为什么你应该使用 git 或类似的东西进行源跟踪,而且没有理由不这样做,因为它是免费的,除非你的业务很大。

那些是 .dex 文件。 android sdk 中有一个名为 dexdump 的工具可以对它们进行解码。您的里程可能会因它的工作情况而异,而且几乎肯定会混合使用 java 和 kotlin 代码。

您下载的每个 sdk 都有该程序的一个版本,它是特定于它的。有关定位它的信息,请看这里: How To Use Dexdump

【讨论】:

对不起,你能解释一下如何对这些文件进行 dexdump 吗?我的意思是我已经尝试过这样做,但是 cmd 在屏幕截图中显示错误。首先我尝试 dexdump zip 然后只是文件夹,但它似乎不起作用。 这是截图:drive.google.com/file/d/16UlLCXLt2EQ94TXkPdTZTnXcsFKFOMZt/… 它适用于具有 .dex 扩展名的单个文件。不仅如此,我帮不了你。 我尝试对单个 dex 文件进行 dexdump,但出现此错误:处理 'C:\Users\Greg\Desktop\lifer\classes7.dex'... E/dalvikvm(8780): ERROR : 不支持的 dex 版本 (30 33 39 00) E/dalvikvm(8780): 错误: 字节交换 + 验证失败 错误: 'C:\Users\Greg\Desktop\lifer\classes7.dex' 的结构验证失败你可能知道吗如何解决这个问题? 不支持的 dex 版本意味着您使用了错误的 dexdump 版本。您安装了该工具的多个副本,每个副本都是为特定框架设计的。如果你不知道你用的是哪一个,你必须尝试你已经安装的所有版本的 dexdump。

以上是关于如何将手机应用程序反编译回 kotlin 代码?的主要内容,如果未能解决你的问题,请参考以下文章

kotlin,为什么反编译java代码将同步锁定块转换为synchronized(var1){} +代码块?

Android .mk文件 如何编译生成apk文件?

class文件反编译后,怎么编译回去!

如何防止Android程序被反编译

使用apktoolbox反编译后如何回编译apk,提示: 请确认是不是已经拖入反编译后的文件夹

安卓反编译出来的代码如何修改重新生成APK