从已编译的apk中恢复丢失的代码

时间:2011-11-25 00:30:24

标签: java android apk recover

我在这里有一个问题......它让我非常紧张。

我正在制作这款游戏​​,而且它很棒,所以我在笔记本电脑上复制了它,以便在远离我的电脑的情况下完成一些工作。

长话短说,硬盘失败+糟糕的备份导致我失去了一个非常重要的课程。

有没有办法反编译apk来检索丢失的代码?它不是过于复杂或复杂,只是不经过阅读而无法重写它。单。线。的。码。在整个应用程序中,因为它初始化了很多类并以特定方式加载了一堆东西。

通过快速谷歌搜索,我能够找到apktool,它将其反编译成一堆.smali文件,我认为这些文件不是为人类阅读而设计的。

我需要恢复的是课堂上一个非常重要的方法。我找到了包含它的smali文件,我想我找到了它开始的行。

之类的东西
  

.method public declared-synchronized load(Lcom / X / X / game / X;)I

任何帮助都会受到赞赏,因为我不得不在没有这种方法的情况下废弃整个游戏。

1 个答案:

答案 0 :(得分:5)

快速谷歌导致了一种反编译apks(decompile apk to java source)的方法。但是,即使它导致java代码,您可能也不会有任何变量名称(只有param1这样的默认名称),因为在将源代码编译为字节代码时,这些名称也不可恢复,这取决于反编译器,for / foreach循环将是while循环,if / else块可能由于编译器优化而不能代表原始控制流。

作为一般建议:使用某种源代码控制。在您自己的服务器上,使用github付费帐户并不重要,但使用源代码控制。即使你只是一个人在项目上发展。它有助于这种情况,它有助于恢复到以前的版本,它有助于找到您引入的错误。当工具可用时,请使用它们。