如何将手机应用程序反编译回 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){} +代码块?