从APK文件到项目的逆向工程

Mar*_*kic 229 android decompiling apk

我意外地从Eclipse中删除了我的项目,我剩下的就是我转移到手机上的APK文件.有没有办法扭转出口申请,.apk文件的过程,所以我可以得到我的项目回来?

rah*_*hul 274

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

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

    $ d2j-dex2jar.bat demo.apk
    dex2jar demo.apk -> ./demo-dex2jar.jar
    
    Run Code Online (Sandbox Code Playgroud)
  3. 生成JAR文件后,使用JD-GUI打开JAR文件.您将看到Java文件.

输出类似于:

JD GUI

  • 不推荐使用cmd,而是使用`d2j-dex2jar`(v0.0.9.15). (26认同)
  • @HoangHuynh你将有一个带有不可读的xml文件的`res`文件夹 (8认同)
  • 如何获取资源文件 (6认同)
  • 在"Mac"中如果你不能使用dex2jar:`权限被拒绝`那就这样做吧`$ sudo chmod + x d2j-dex2jar.sh` (5认同)

Swa*_*nar 79

首先,我建议this视频可能会清除你的所有怀疑

如果没有,请通过它

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

Step 1:

创建一个新文件夹并将.apk文件放入其中(您要解码).现在将此.apk文件的扩展名重命名为.zip(例如:从filename.apk重命名为filename.zip)并保存.

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

获得.zip后,你会得到classes.dex文件等.在这个阶段你可以看到drawable而不是xml和java文件,所以继续.如果您没有看到扩展程序,请检查配置

Step 2:

现在解压缩此apk文件夹在同一个文件夹中.现在从这里下载dex2jarlink

并将其解压缩到同一个文件夹中.现在打开命令提示符并将目录更改为该文件夹.

然后写下dex2jar classes.dex并按回车键.现在您classes.dex.dex2jar在同一文件夹中获取文件.

然后下载java反编译器

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

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

Step 3:

现在打开另一个新文件夹并放入这些文件

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

  2. 下载Apktool for windows v1.xAndApktool

使用谷歌安装窗口并放入同一文件夹

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

  2. 打开命令窗口

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

上面的命令应该导致Framework installed ....

  1. apktool d"appName".apk("appName"表示您要解码的应用程序)现在您在该文件夹中获得了一个文件夹,现在您也可以轻松读取xml文件.

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

P.S. 如果您无法通过上述步骤获得res文件夹,请安装新的 apktool

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

Enjoy and happy coding

  • @ user2934930这意味着代码已使用ProGuard进行了模糊处理。 (2认同)

Ran*_*mar 54

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

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

https://www.apkdecompilers.com/

该网站将反编译嵌入在APK文件中的代码并提取文件中的所有其他资产.

注意:我反编译我的APK文件并从该网站获取一个miniute内的代码

更新1:

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

http://www.javadecompilers.com/apk/ - 不连续要求弹出窗口阻止

更新2:

我在Play商店找到了apk反编译器应用,

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

我们可以在我们的Android手机中反编译apk文件.我们还可以在此应用程序中查看java和xml文件

更新3:

我们可以使用Android studio 2.2版本中的另一个分析分析APK功能

构建 - >分析APK - >选择你的APK - >它给出结果

在此输入图像描述

  • 在最后一个方法中我们无法打开java类,只显示方法名称 (3认同)

Bri*_*ani 6

有一种新方法可以做到这一点.

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

美联社


Imr*_*mer 6

在 Android Studio 3.5 中,您可以在一分钟内实现它,这太容易了。以下是一个循序渐进的过程。

1:打开Android Studio,按窗口按钮->输入Android Studio->点击图标打开android studio启动画面,如下所示。

在此处输入图片说明

2:在这里你可以看到一个选项“配置文件或调试APK”点击它并选择你的apk文件并按确定。

在此处输入图片说明

3: 它会在一分钟内打开您所有的清单和 java 类,具体取决于 apk 的大小。

在此处输入图片说明

就是这样。

  • 这个解决方案没有给我任何类型的java文件 (3认同)

Chr*_*son 5

并不真地。有许多 dex 反汇编器/反编译器套件,例如 smalidex2jar,它们将生成半人类可读的输出(在 dex2jar 的情况下,您可以通过使用JD-GUI等工具获取 java 代码,但过程是并不完美,您不太可能 100% 重新创建源代码。但是,它可能为您提供一个开始重建源代码树的地方。