1400

我笔记本电脑上的硬盘刚刚崩溃,我丢失了过去两个月一直在开发的应用程序的所有源代码。我所拥有的只是我将其发送给朋友时存储在我的电子邮件中的 APK 文件。

有没有办法从这个APK文件中提取我的源代码?

4

31 回答 31

1697

简单的方法:使用在线工具https://www.decompiler.com/,上传 apk 并获取源代码。


解码 .apk 文件的程序,分步方法:

第1步:

  1. 创建一个新文件夹并复制要解码的 .apk 文件。

  2. 现在将此.apk 文件的扩展名重命名为.zip(例如,从filename.apk 重命名为filename.zip)并保存。现在您可以访问 classes.dex 文件等。在这个阶段您可以看到 drawables 但看不到 xml 和 java 文件,所以继续。

第2步:

  1. 现在将这个 .zip 文件解压到同一个文件夹(或 NEW FOLDER)中。

  2. 下载 dex2jar并将其解压缩到同一文件夹(或 NEW FOLDER)。

  3. 将 classes.dex 文件移动到 dex2jar 文件夹中。

  4. 现在打开命令提示符并将目录更改为该文件夹(或 NEW FOLDER)。然后写入d2j-dex2jar classes.dex(对于 mac 终端或 ubuntu 写入./d2j-dex2jar.sh classes.dex)并按回车键。您现在在同一文件夹中拥有 classes.dex.dex2jar 文件。

  5. 下载java反编译器,双击jd-gui,点击打开文件,然后从那个文件夹打开classes.dex.dex2jar文件:现在你得到了类文件。

  6. 通过 src 名称保存所有这些类文件(在 jd-gui 中,单击 File -> Save All Sources)。在这个阶段,您获得了 java 源代码,但 .xml 文件仍然无法读取,因此请继续。

第 3 步:

现在打开另一个新文件夹

  1. 放入要解码的 .apk 文件

  2. 下载最新版本的apktoolapktool 安装窗口(都可以从同一个链接下载)并将它们放在同一个文件夹中

  3. 打开命令窗口

  4. 现在运行命令apktool if framework-res.apk(如果你没有它在这里得到它)和下一个

  5. apktool d myApp.apk (其中 myApp.apk 表示您要解码的文件名)

现在您在该文件夹中获得了一个文件夹,并且可以轻松读取 apk 的 xml 文件。

第4步:

这不是任何步骤,只需将两个文件夹(在本例中为两个新文件夹)的内容复制到单个文件夹

并享受源代码...

于 2011-05-21T11:20:04.800 回答
140

这是另一种描述——以防万一有人被上面的描述卡住了。按照步骤:

  1. 下载apktool.bat(或apktool用于 Linux)并apktool_<version>.jarhttp://ibotpeaches.github.io/Apktool/install/
  2. 将上面的jar文件重命名为apktool.jar并将两个文件放在同一个文件夹中

  3. 打开一个dos框(cmd.exe)并切换到该文件夹​​;验证是否安装了 Java 环境(对于 Linux,请检查有关所需库的说明)
  4. 开始:apktool decode [apk file]

    中间结果:资源文件,AndroidManifest.xml

  5. 使用您选择的解包器解压缩 APK 文件

    中间结果classes.dex

  6. dex2jar-0.0.9.15.ziphttp://code.google.com/p/dex2jar/downloads/detail?name=dex2jar-0.0.9.15.zip&can=2&q=下载并解压
  7. 拖放classes.dexdex2jar.bat(或<path_to>\dex2jar.bat classes.dex在 DOS 框中输入;供 Linux 使用dex2jar.sh

    中间结果classes_dex2jar.jar

  8. 解包classes_dex2jar.jar(根据使用的反编译器可能是可选的)
  9. 反编译你的类文件(例如使用JD-GUIDJ Decompiler

    结果:源代码

注意:不允许反编译第三方包;本指南旨在仅从 APK 文件中恢复个人源代码;最后,生成的代码很可能会被混淆

于 2013-03-13T20:09:10.843 回答
120

虽然您可能能够反编译您的APK文件,但您可能会遇到一个大问题:

它不会返回您编写的代码。相反,它将返回编译器内联的任何内容,变量给定随机名称,函数给定随机名称。尝试反编译并将其还原为您拥有的代码可能需要比重新开始更多的时间。

可悲的是,这样的事情已经扼杀了许多项目。
对于未来,我强烈建议学习版本控制系统,如CVSSVNgit等。

以及如何备份它。

于 2010-08-29T03:58:12.263 回答
57

Play Store上还有一个新应用程序,可以使用它反编译 apk(系统应用程序)并直接在智能手机上查看源代码。它将文件保存到您的 SD 卡,因此您也可以在计算机上查看它。它不需要root或其他东西。

只需安装并玩得开心。我认为这是反编译应用程序的最简单方法。

于 2014-01-11T12:49:24.880 回答
30

apktool是您可以尝试的最好的东西。我已经用它保存了一些 xml,但老实说,我不知道它如何与 .java 代码一起使用。

即使您是唯一的编码员,我也会建议您拥有一个代码存储库。我一直在为自己的项目使用Project Locker 。它为您提供免费的 svn 和 git repos。

于 2010-08-29T12:17:54.973 回答
26

这两篇文章描述了如何结合使用apktooldex2jar获取一个APK文件并创建一个可以构建和运行它的 Eclipse 项目。

http://blog.inyourbits.com/2012/11/extending-existing-android-applications.html

http://blog.inyourbits.com/2012/12/extending-existing-android-applications.html

基本上你:

  1. 用于apktool从 apk 中获取资源文件
  2. 用于dex2jar获取 jar 文件,其中包含 Eclipse 喜欢的格式的类。
  3. 创建一个 Eclipse 项目,将其指向资源文件和新的 jar 文件
  4. 使用 zip 实用程序打开 jar 文件并删除现有资源
  5. 用打开jar文件JDGui查看源代码
  6. 获取您需要的任何源代码JDGui,将其粘贴到 Eclipse 中的一个类中并对其进行修改
  7. 从 jar 文件中删除该类(因此您没有多次定义相同的类)
  8. 运行。
于 2012-12-06T01:38:54.927 回答
23

apktool 将工作。您甚至不需要知道密钥库即可提取源代码(这有点吓人)。主要缺点是源代码以 Smali 格式而不是 Java 格式呈现。其他文件,如 icon 和 main.xml 都可以正常运行,至少值得您花时间恢复这些文件。最终,您很可能需要从头开始重新编写 Java 代码。

你可以在这里找到 apktool 。只需下载 apktool 和适当的帮助程序(适用于 Windows、Linux 或 Mac OS)。我建议使用 7-zip 之类的工具来解压它们。

于 2010-08-29T04:02:46.953 回答
19

有几种方法可以做到这一点:

  1. 使用 Android Studio 3.0 中的“配置文件或调试 APK”功能。

    它允许您在 Android Studio 中打开和探索 APK。类被反编译成 smali。资源不会被提取,如果没有源代码(android studio 3.0 canary 9),诸如“转到定义”、“查找所有引用”和调试之类的东西就无法工作。一些额外的 smali 功能可能适用于smalidea

    安卓工作室

    选择文件

    代码

  2. 使用jadx

    Jadx 将给定 APK 中的代码反编译为 java 源文件。

    jdax-img

  3. 使用apktool

    Apktool 是一个命令行工具,它为给定的 apk 提取资源并将代码反编译为 smali。您也可以使用 apktool 重新编译。这是它的一个例子:

    $ apktool d test.apk
    I: Using Apktool 2.2.4 on test.apk
    I: Loading resource table...
    I: Decoding AndroidManifest.xml with resources...
    I: Loading resource table from file: 1.apk
    I: Regular manifest package...
    I: Decoding file-resources...
    I: Decoding values */* XMLs...
    I: Baksmaling classes.dex...
    I: Copying assets and libs...
    I: Copying unknown files...
    I: Copying original files...
    $ apktool b test
    I: Using Apktool 2.2.4 on test
    I: Checking whether sources has changed...
    I: Smaling smali folder into classes.dex...
    I: Checking whether resources has changed...
    I: Building resources...
    I: Building apk file...
    I: Copying unknown files/dir...
    
于 2017-08-11T03:27:00.093 回答
18

可能是很容易看到来源的:

在 Android Studio 2.3 中,Build -> Analyze APK -> Select the apk that you want to decompile.
你会看到它的源代码。

参考链接:
https ://medium.com/google-developers/making-the-most-of-the-apk-analyzer-c066cb871ea2

于 2017-05-25T14:06:36.283 回答
8

该站点https://www.apkdecompilers.com/自动完成。

我首先尝试了接受的答案中提到的网站,但这对我不起作用。

于 2017-09-11T06:20:23.883 回答
8

我个人推荐Show Java Android App来获取源代码。您可以从 Play 商店或从此处下载

于 2017-10-04T06:33:18.437 回答
7

在线工具下方:

http://www.javadecompilers.com/apk

一键完成所有操作:反编译的.java 文件 + 资源 + xml(在一个 .zip 文件中)具有非常好的反编译器(jadx 在其他编译返回函数内部的注释的地方/函数中返回 java 代码,例如“无法反编译”或一些android 汇编程序/机器代码)

于 2017-06-10T14:36:39.130 回答
6

我将向您展示反编译.apk文件的其他方法。

您可以按照“ prankul garg ”中的前两个步骤进行操作。所以你还有另一个机会:

步骤 3':

下载“JD-GUI”,很容易找到这个。在“jd-gui.exe”中打开您的.jar文件。(文件 > 打开文件 > '找到你的.jar文件')。完成此过程后,您可以将所有资源保存在.zip文件中。

所以,

1st - 您必须将.apk文件重命名为.zip

第二 - 您必须解码.dex文件(如果需要,将.apk文件解码为dex2jar,这是可能的)

3rd - 您必须使用JD-GUI解码.jar文件

于 2013-02-25T12:22:01.730 回答
6

根据您的情况,如果您的 android apk:

条件1:不硬化(腾讯乐谷/奇虎360/...)

选择1:使用在线服务

如:

使用 www.javadecompilers.com

去:

从 apk 自动解码到 java 源代码

脚步:

uploadapk 文件 + 单击Run+ 等待一段时间 + 单击Download以获取 zip + 解压缩 ->

sources/com/{yourCompanyName}/{yourProjectName}

是你预期的java源代码

选择2:自己反编译/破解

使用相关工具自行反编译/破解:

使用jadx/jadx-gui转换apkjava sourcecode

下载jadx-0.9.0.zip然后解压到 got bin/jadx,然后:

  • 命令行模式:
    • 在终端运行:jadx-0.9.0/bin/jadx -o output_folder /path_to_your_apk/your_apk_file.apk
    • output_folder 将显示解码sourcesresources
      • sources/com/{yourCompanyName}/{yourProjectName}是你的预期java sourcecode
  • 图形界面模式
    • 双击运行jadx-0.9.0/bin/jadx-gui(Linux's jadx-gui.sh/ Windows's jadx-gui.bat
    • 打开apk文件
    • 它将自动解码 -> 查看您预期的 java 源代码
    • save all或者save as Gradle project

例如:

条件2:硬化(腾讯乐谷/奇虎360/...)

主要方法3 steps

  1. apk/app to dex
  2. dex to jar
  3. jar to java src

详细解释:

第1步:apk/app to dex

使用工具(FDex2/DumpDex)dex从正在运行的应用程序中转储/挂钩(一个或多个)文件

脚步:

准备环境

dex从正在运行的应用程序中转出

  • 运行FDex2然后单击您的 apk 名称以启用以后捕获/挂钩 dex

  • (在手机/模拟器中)运行您的应用程序
  • 查找并复制出整个 apk 资源的转储文件/data/data/com/yourCompanyName/yourProjectName
    • 在其根文件夹中通常会找到几个dex文件

第2步: dex to jar

使用工具(dex2jar)将(特定的,包含应用程序逻辑)dex文件转换为jar文件

下载dex2jar得到dex-tools-2.1-SNAPSHOT.zip,解压得到dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh,然后

sh dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh -f your_dex_name.dex

例如:

dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh -f com.xxx.yyy8825612.dex
dex2jar com.xxx.yyy8825612.dex -> ./com.xxx.yyy8825612-dex2jar.jar

第三步:jar to java src

使用其中一种工具:

转换jarjava src

对于从 jar 到 java src 的转换效果:

Jadx> Procyon> CRF>>JD-GUI

所以推荐使用:Jadx/jadx-gui

脚步:

  • 双击运行jadx-gui
  • 打开dex文件
  • File->save all

例如:

导出的 java src:


更详细的解释可以看我的在线电子书中文教程:

于 2019-04-08T06:39:47.383 回答
5

Apktool用于逆向工程第 3 方、封闭、二进制 Android 应用程序。

它可以将资源解码为几乎原始的形式,并在进行一些修改后重建它们。

它使逐步调试 smali 代码成为可能。此外,由于类似项目的文件结构和一些重复性任务(如构建 apk 等)的自动化,它还使使用应用程序变得更容易。

http://ibotpeaches.github.io/Apktool/

于 2016-05-15T08:21:25.713 回答
5

apktool是要走的路。在线 apktool 服务也存在:http ://www.javadecompilers.com/apktool

显然,由于服务“在线性质”而存在一些限制:您可以提取和研究资产和清单文件,但目前无法重新编译应用程序。

尽管如此,这仍然是一种“打开”安卓应用程序的便捷方式。

于 2017-07-11T05:51:03.133 回答
4

你可以试试DexPacher。它甚至与 Android Studio 集成。它在内部使用ApktoolDex2Jar
您也可以独立使用这些工具。 Apktool反编译 apk,提取 .dex 文件,可以进一步使用 Dex2Jar 将其转换为 jar。jar 可以使用JD-GUI进行反编译。您可以借助该工具查看 Java 代码。虽然无法保证反编译代码与实际代码的相似性。市场上有一些高级代码混淆工具,它们会混淆代码,使其难以反编译/理解。例如。保卫

于 2017-11-16T10:53:37.873 回答
3

Android Studio 让您可以分析任何 apk 文件。

1 - 从构建菜单中选择分析 apk 选项并选择 apk 文件。2 - 这将为您生成 classes.dex 文件和其他文件。3 - 单击 classes.dex,它将为您提供文件夹、包、库和文件的列表。4 - 从和 android studio 设置安装一个名为“Dex to Jar”的插件 5 - 单击提取项目的任何活动文件,然后从构建菜单中选择 dex to jar。

这将为您生成 java 文件的实际代码。

干杯。

于 2019-05-10T19:48:11.437 回答
3

第 1 步:创建一个新文件夹并复制要解码的 .apk 文件。

现在将此.apk 文件的扩展名重命名为.zip(例如,从filename.apk 重命名为filename.zip)并保存。现在您可以访问 classes.dex 文件等。在这个阶段您可以看到 drawables 但看不到 xml 和 java 文件,所以继续。

第 2 步:现在将这个 .zip 文件解压缩到同一文件夹(或 NEW FOLDER)中。

下载https://github.com/pxb1988/dex2jar/releases/tag/2.0:dex2jar-2.0 _

现在打开命令提示符并将目录更改为该文件夹(或 NEW FOLDER)。然后执行: d2j-dex2jar.bat classes.dex

下载这个反编译器http://java-decompiler.github.io/来反编译classes-dex2jar.jar

第 3 步:现在打开另一个新文件夹

放入要解码的 .apk 文件

下载最新版本的 apktool 和 apktool ( https://ibotpeaches.github.io/Apktool/install/ ) 安装窗口(两者都可以从同一个链接下载)并将它们放在同一个文件夹中

打开命令窗口

现在运行像 apktool 这样的命令 if framework-res.apk (如果你没有它在这里得到它)然后下一步

apktool d myApp.apk(其中 myApp.apk 表示您要解码的文件名)

现在您在该文件夹中获得了一个文件夹,并且可以轻松读取 apk 的 xml 文件。

将两个文件夹的内容复制到一个文件夹

完毕 !

于 2021-02-10T14:22:10.917 回答
1

最简单的方法是使用 Apk OneClick Decompiler。这是一个反编译和反汇编 APK(android 包)的工具包。

特征

  • 所有功能都集成到 Windows 的右键菜单中。
  • 将 APK 类反编译为 Java 源代码。
  • 将 APK 反汇编为 smali 代码并解码其资源。
  • 通过右键单击将APK安装到手机。
  • 编辑 smali 代码和/或资源后重新编译 APK。重新编译期间:
  • 优化png图片
  • 签署 apk
  • Zipalign

要求

必须安装 Java 运行时环境 (JRE)。

您可以从此链接下载它Apk OneClick Decompiler

享受那个。

于 2019-02-16T13:34:20.260 回答
1

我发现以下是最简单的方法:

  1. 将您的 app.apk 重命名为 app.zip(将扩展名从 apk 更改为 zip)
  2. 将 zip 文件解压缩到一个文件夹中
  3. 使用JADX工具读取位于 classes.dex 文件中的源代码。
于 2019-02-25T22:43:39.590 回答
1

有一个应用程序,通常只需点击几下即可完成。 https://github.com/Nuvolect/DeepDive-Android

  1. 选择应用程序,在“已安装的应用程序”下选择您的应用程序。如果它不存在,您可以加载 APK。
  2. 选择“提取APK”
  3. 选择“解压APK”
  4. 选择“使用 Jadx 反编译”。这可能需要几秒钟或几分钟,具体取决于您设备的速度

之后,您可以浏览源代码,使用 elFinder 将其下载到另一台计算机或使用 Lucene 搜索。

除了 Jadx,它还有 CFR 和 Fernflower 反编译器。

于 2019-02-26T21:46:50.313 回答
1

我开发了一个工具 - 代码分析器,它在 iPhone/iPad/Mac 上运行,用于分析 Java/Android 文件,https://decompile.io

在此处输入图像描述

在此处输入图像描述

于 2020-05-11T02:05:14.613 回答
1

1. 从原生 Android 应用程序中提取源代码

原生 Android 应用程序的源代码并不难获得,但它确实需要与 Windows、Mac 和 Linux 兼容的额外工具。我个人最喜欢的工具是dex2jarJD-GUI

如果您不熟悉这些工具,dex2jar 将读取 Dalvik 可执行文件并将它们转换为标准 JAR 格式。JD-GUI 将读取 JAR 文件并反编译其中找到的类文件。

为了使提取过程更容易理解,让我们从创建一个全新的原生 Android 项目开始:

android create project --target 19 --name TestProject --path . --activity TestProjectActivity --package com.nraboy.testproject

上述命令将在您当前的命令提示符路径中留下一个 Android 项目。

由于我们的项目已经包含一个 Activity 类,让我们直接进入构建过程。你可以让我整天为使用 Ant 而不是 Gradle 或 Maven 而烦恼,但对于本教程,我将坚持使用它。

ant debug

上述命令将创建一个通常位于bin/TestProject-debug.apk的调试版本。

使用您最喜欢的解压缩工具,解压缩 APK 文件。7-zip 是一种流行的工具,但如果您使用的是 Mac,您可以从终端运行以下命令:

unzip TestProject-debug.apk

这会给我们留下一堆文件和文件夹,但其中一个对我们很重要。记下 classes.dex,因为它包含我们所有的源代码。要将其转换为可读的内容,我们需要在其上运行 dex2jar。您可以在 Mac、Linux 和 Windows 上使用 dex2jar,但我将从 Mac 的角度进行解释。

使用解压后的dex2jar目录中的classes.dex文件,从终端运行以下命令:

./dex2jar.sh classes.dex

打开您下载的 JD-GUI 应用程序,因为现在是解码 JAR 和打包类文件的时候了。打开新创建的classes_dex2jar.jar文件,您应该会看到如下内容:

在此处输入图像描述 看看获取原生 Android APK 的源代码是多么容易?现在你能做些什么来更好地保护自己?

Android SDK 附带Proguard,这是一个混淆模块。你问什么是混淆?

通过维基百科混淆:

混淆(或混淆)是在交流中隐藏预期意义,使交流变得混乱、故意模棱两可且难以解释。

虽然混淆不会加密您的源代码,但它会使其更难理解。配置 Proguard 后,在发布模式下运行 Ant,您的代码应该在构建时被混淆。

2. 从混合 Android 应用程序中提取源代码

混合应用程序的源代码是迄今为止最容易提取的。您不需要在计算机上安装任何额外的软件,只需访问 APK 文件即可。

为了让事情更容易理解,让我们首先创建一个新的 Apache Cordova 项目,然后将其解压缩。首先执行以下操作:

cordova create TestProject com.example.testproject TestProject
cd TestProject
cordova platform add android

在项目创建过程中,您将使用默认的 Apache Cordova CSS、HTML 和 JavaScript 模板。在这个例子中,这对我们来说很好。让我们继续将我们的项目构建成一个分布式 APK 文件:

cordova build android

您将留下platforms/android/ant-build/CordovaApp-debug.apk 或类似platforms/android/ant-build/*-debug.apk 的东西

即使这是一个调试版本,它仍然非常有用。安装7-zip或类似文件后,右键单击 APK 文件并选择解压缩或解压缩。在提取的目录中,您现在应该可以访问所有基于 Web 的源文件。我说基于 Web 是因为 Apache Cordova 使用的任何 Java 文件都将被编译成类文件。但是,CSS、HTML 和 JavaScript 文件不会被触及。

您刚刚看到获得混合应用程序源代码是多么容易令人沮丧。那么你能做些什么来更好地保护自己呢?

您可以丑化您的代码,这是一种混淆形式。

这样做不会加密您的代码,但会使其更难理解。

如果你想丑化你的代码,我建议你安装UglifyJS,因为它几乎是现在的标准。如果您更喜欢使用任务运行器,Grunt 和 Gulp 也有用于 UglifyJS 的模块。

于 2020-09-10T21:06:23.857 回答
1

市场上有很多将apk文件反编译成java类的应用程序和方法,但是如果应用程序是用ProGuard规则编译的,那么你就有大麻烦了,因为这个规则会将所有的dex文件压缩成一个小字符名,然后您无法追溯实施。有关模式说明,请参阅https://developer.android.com/studio/build/shrink-code

快乐的编码...

于 2020-10-27T11:16:53.727 回答
0

几天来,我一直在让自己发疯,试图让 dex2jar 在 Fedora 31 笔记本电脑上工作,而不是一个无法工作的 apk。这个 python 3 脚本在几分钟内完成了这个技巧,安装 jd-gui 使类文件成为人类可读的。

http://java-decompiler.github.io/

https://github.com/Storyyeller/enjarify

具体来说,这是我跑的:

# i installed apktool before the rest of the stuff, may not need it but here it is
$> cd /opt
$> sudo mkdir apktool
$> cd apktool/
$> sudo wget https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktool
$> sudo wget https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.4.1.jar
$> sudo mv apktool_2.4.1.jar apktool.jar
$> sudo mv apktool* /usr/bin/
$> sudo chmod a+x /usr/bin/apktool*

# and enjarify
$> cd /opt
$> sudo git clone https://github.com/Storyyeller/enjarify.git
$> cd enjarify/
$> sudo ln -s /opt/enjarify/enjarify.sh /usr/bin/enjarify

# and finally jd-gui
$> cd /opt
$> sudo git clone https://github.com/java-decompiler/jd-gui.git
$> cd jd-gui/
$> sudo ./gradlew build

# I made an alias to kick of the jd-gui with short commandline rather than long java -jar blahblahblah :)
$> echo "jd-gui='java -jar /opt/jd-gui/build/launch4j/lib/jd-gui-1.6.6.jar'" >> ~/.bashrc

现在应该能够朗姆酒以下内容来获取类文件:

$> enjarify yourapkfile.apk

并启动 jd-gui:

$> jd-gui

然后打开你的类文件!

于 2020-01-29T01:37:12.193 回答
0

使用这个工具 http://www.javadecompilers.com/

但最近,一波新的反编译器涌入市场: Procyon、CFR、JD、Fernflower、Krakatau、Candle。

以下是本网站上提供的反编译器列表:

CFR - 免费,没有可用的源代码,http ://www.benf.org/other/cfr/ 作者:Lee Benfield

非常好的反编译器!CFR 能够反编译现代 Java 功能——Java 9 模块、Java 8 lambdas、Java 7 字符串开关等。它甚至可以很好地将类文件从其他 JVM 语言转换回 Java!

JD - 免费用于非商业用途, http: //jd.benow.ca/ 作者:Emmanuel Dupuy

2015 年更新。拥有自己的可视化界面和 Eclipse 和 IntelliJ 插件。用 C++ 编写,速度非常快。支持 Java 5。

Procyon - 开源,https ://bitbucket.org/mstrobel/procyon/wiki/Java%20Decompiler 作者:Mike Strobel

Fernflower - 开源,https ://github.com/fesh0r/fernflower 作者:Egor Ushakov

2015 年更新。非常有前途的分析 Java 反编译器,现在成为 IntelliJ 14 不可或缺的一部分。( https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler ) 支持 Java 最高版本 6 (注解、泛型、枚举)

JAD - 仅出于历史原因在此给出。免费,无源代码,jad 下载镜像作者:Pavel Kouznetsov

于 2020-05-28T12:37:15.293 回答
0

是的,有可能。

有大量软件可用于对 android .apk 文件进行逆向工程。

最近,我在我的网站上编制了47 个最佳 APK 反编译器的最终列表。我把它们分成4个不同的部分。

  1. 开源 APK 反编译器
  2. 在线 APK 反编译器
  3. 适用于 Windows、Mac 或 Linux 的 APK 反编译器
  4. APK 反编译器应用

我希望这个合集对你有所帮助。

链接:https ://www.epedia.com/blog/best-apk-decompilers/

于 2020-06-11T11:53:14.807 回答
0

Android 应用的 APK 文件可以使用以下任何一种方法进行反编译:

  1. APKTool(需要在您的 PC 上安装 Java)
  2. APKTool M (安卓应用)
  3. JavaDecompilers(在线工具包括 APKTool 实用程序)

来源:https ://droidmaze.com/how-to-extract-code-from-apk/

于 2021-10-27T01:16:21.560 回答
0

为了反编译 APK 并从中获取代码,您有多个在线工具,我通常更喜欢使用Online APK Decompiler

它非常易于使用,几分钟内您就可以从中下载源代码。

如果你想从 playstore 下载 APK反编译. 您也可以轻松地从中下载它。

于 2021-11-25T07:27:02.047 回答
0

单击解决方案(仅限 Windows)

在阅读了这篇 loooooonnnnnngggg 帖子后,我决定创建一个自动化流程,只需单击一下即可反编译 APK,

我决定在 github 上分享它:
https ://github.com/shaybc/apk-decompiler

simply unzip,
copy the apk you want to decompile into "apk-source" folder
and run "go.bat"
find the result in the: "apk-output" folder

就是这样,享受

于 2022-02-13T00:46:38.430 回答