从APK文件反向工程到项目

我不小心从Eclipse中删除了我的项目,而我留下的只是我转移到手机的APK文件。 有没有办法扭转将应用程序导出到.apk文件的过程,这样我就可以恢复项目了?

有两个有用的工具可以从一个未知的APK文件中生成Java代码(粗糙但足够好)。

  1. 从dex2jar下载dex2jar工具。
  2. 使用该工具将APK文件转换为JAR :

    $ d2j-dex2jar.sh my.apk dex2jar my.apk -> ./my-dex2jar.jar 
  3. 生成JAR文件后,使用JD-GUI打开JAR文件。 您将看到Java文件。

输出将类似于:

JD GUI

首先我推荐thisvideo可能会清除你所有的疑惑

如果不是,请通过它

Procedure for decoding .apk files, step-by-step method:

Step 1:

创build一个新的文件夹,并把.apk文件(你想解码)。 现在将这个.apk文件的扩展名重命名为.zip (例如:从filename.apk重命名为filename.apk.zip)并保存。

如果转换成.zip的问题请参考link

现在得到.zip后,你会得到classes.dex文件等。在这个阶段,你可以看到可绘制的但不是xml和java文件,所以继续。 如果您没有看到分机,请检查configuration

Step 2:

现在提取这个压缩apk文件在同一个文件夹中。 现在从这个link下载dex2jar

并将其解压到相同的文件夹。 现在打开命令提示符并将目录更改为该文件夹。

然后写dex2jar classes.dex并按回车。 现在,您可以在同一个文件夹中获取classes.dex.dex2jar文件。

然后下载java反编译器

现在双击jd-gui并点击打开的文件。 然后从该文件夹打开classes.dex.dex2jar文件。 现在你得到类文件并保存所有这些类文件(单击文件,然后单击“保存所有源”在jd-gui中)按src名称。 提取该压缩文件(classes_dex2jar.src.zip) ,您将获得该应用程序的所有Java文件。

在这个阶段你得到java源代码,但是xml文件仍然是不可读的,所以继续。

Step 3:

现在打开另一个新的文件夹,并把这些文件

  1. 把你想解码的.apk文件

  2. 下载Apktool for windows v1.xApktool

使用谷歌安装窗口,并放在相同的文件夹

  1. 使用谷歌下载framework-res.apk文件,并放在相同的文件夹(并非所有的apk文件都需要framework-res.apk文件)

  2. 打开一个命令窗口

  3. 导航到APKtool的根目录并input以下命令: apktool if framework-res.apk.

以上命令应导致Framework installed ...

  1. apktool d“appName”.apk(“appName”表示你想要解码的应用程序)现在你得到该文件夹​​中的一个文件夹,现在你也可以轻松地读取xml文件。

Step 4:最后我们得到了项目的res/代码,这是我们开始的目标。

PS如果您无法通过上述步骤获取res文件夹,请安装新的apktool

  • Java 1.7安装? 安装Apktool 2.x
  • Java 1.6或更高版本是否安装? 安装Apktool 1.x

Enjoy and happy coding

没有软件和没有太多的步骤..

只需上传您的APK,并从这个网站获取您的所有资源..

https://www.apkdecompilers.com/

本网站将反编译APK文件中embedded的代码,并提取文件中的所有其他资产。

注意:我反编译我的APK文件,并从本网站获得一个简短的代码

更新1

我发现了另一个在线反编译器网站,

http://www.javadecompilers.com/apk/ – 不能连续询问popup窗口

更新2:

我发现在游戏商店的apk反编译器应用程序,

https://play.google.com/store/apps/details?id=com.njlabs.showjava

我们可以在我们的android手机中反编译apk文件。 也可以在这个应用程序中查看java&xml文件

更新3:

我们可以使用另一个选项Android Studio 2.2版本的分析APKfunction

生成 – >分析APK – >select你的APK – >它给结果

在这里输入图像描述

不是真的。 有一些dex反汇编/反编译器套件, 例如smali或dex2jar ,将会生成半可读输出(在dex2jar的情况下,您可以通过使用类似于JD-GUI的东西来获得Java代码,但是这个过程是不完美,你不可能100%重新创build你的源代码,但它可能会给你一个地方开始重build你的源代码树。

有一个新的方法来做到这一点。

Android Studio 2.2有APK分析器,它会提供大量有关apk的信息,在这里检查它: – http://android-developers.blogspot.in/2016/05/android-studio-22-preview-new-ui.html

美联社

是的,你可以让你的项目回来。 只需将yourproject.apk文件重命名为yourproject.apkyourproject.zip获得该ZIP文件中的所有文件。 我们正在将文件扩展名从.apk更改为.zip。 从该ZIP文件中,提取classes.dex文件并按照以下方式对其进行反编译。

首先,您需要一个工具将DEX上的所有(编译)类提取到JAR。 有一个叫做dex2jar的 ,是由一个中国学生制作的。

然后,您可以使用JD-GUI将JAR中的类反编译为源代码。 由此产生的源代码应该是非常可读的,因为dex2jar应用了一些优化。

按照下面的步骤来做到这一点或简单地使用apkToJava的gem这个过程,它甚至照顾安装所需的工具,以使其工作。

  • 转换apk文件到zip
  • 解压文件
  • 从中提取classes.dex
  • 使用dex将jar转换成jar文件
  • 用jadx gui打开jar文件作为java源代码

如果你正在寻找一个专业的替代品,请看PNF软件的JEB反编译器 。

有一个演示版本,可以让你反编译大部分代码。

以下是一些可用于从APK文件到源代码执行逆向工程的工具:

  1. Dex2jar
  2. Java反编译器
  3. Apktool
  4. APK分析器