丢失了我的数据......能够以某种方式从我的APK获取我的应用程序来源吗?

时间:2015-11-13 02:00:05

标签: android android-studio apk decompiling decompiler

我的电脑坏了,戴尔重置了硬盘。这让我失去了两个月的app修订版。这是一个相当简单的应用程序,不是文件大小的主要内容,所以如果它可以被反编译,它应该不会太糟糕。有没有办法拿我的APK并输出源代码,或至少我的MainActivity?谢谢!

2 个答案:

答案 0 :(得分:1)

您将无法获取原始源代码,但您可以使用工具根据已编译的二进制文件创建新的源代码。这显然完全基于二进制文件,因此您不会获得任何评论或空格,并且它的可读性会低得多,并且可能无法编译或100%工作。但是,嘿,这比没有好。

我建议从APKTool开始。这将解压清单并为您提供smali(Dalvik字节码汇编)。要恢复Java级源代码,有许多Java反编译器可供选择。我建议尝试一下Enjarify + Procyon。

除此之外,您是否尝试过磁盘恢复?根据他们对磁盘所做的操作,您的数据可能仍然可以恢复。

答案 1 :(得分:0)

我使用的是APKtools,您可以提取准确的java源代码,包括资源和xml。

要从APK文件获取源代码,我们需要以下工具: 1. dex2jar 2. java反编译器 3. apktool 4. apkinstall

获取来源的步骤: -

从APK获取Java文件: - 1.将.apk文件重命名为.zip文件(例如SharedPr.apk为SharedPr.zip)。

  1. 提取SharedPr.zip文件并从解压缩的文件夹中复制classes.dex文件。

  2. 提取dex2jar.zip并将classes.dex粘贴到dex2jar文件夹中。

  3. 打开命令提示符并将目录更改为dex2jar文件夹。然后编写dex2jar classes.dex并按Enter键。现在,您将在同一文件夹中获取classes.dex.dex2jar文件。

  4. 现在双击jd-gui(Java反编译器)并单击打开的文件。然后从该文件夹中打开classes.dex.dex2jar文件。现在您将获取类文件并保存所有这些类文件(单击文件,然后单击src名称中的“保存所有源”在jd-gui中)。

  5. 从APK获取XML文件: -

    1. 在文件夹中提取apktool和apkinstall(例如:新文件夹)。

    2. 将SharedPr.apk(您的apk文件)放在同一个文件夹中(即新文件夹)。

    3. 打开命令提示符并转到根目录(即新文件夹)。

    4. 在命令提示符下键入命令:apktool d SharedPr.apk

    5. 这将在当前目录(此处为新文件夹)中生成名称为SharePr的文件夹,所有XML文件将位于res->布局文件夹中。