我笔记本电脑上的硬盘刚刚崩溃,我丢失了过去两个月一直在开发的应用程序的所有源代码。我所拥有的只是我将其发送给朋友时存储在我的电子邮件中的 APK 文件。
有没有办法从这个APK文件中提取我的源代码?
javac -decompile
,这将符合 SO 准则。在我看来,答案是题外话,而不是问题。
简单的方法:使用在线工具https://www.decompiler.com/,上传apk并获取源代码。
解码 .apk 文件的程序,分步方法:
步骤1:
创建一个新文件夹并复制要解码的 .apk 文件。现在将此.apk 文件的扩展名重命名为.zip(例如,从filename.apk 重命名为filename.zip)并保存。现在您可以访问 classes.dex 文件等。在这个阶段您可以看到 drawables 但看不到 xml 和 java 文件,所以继续。
第2步:
现在将这个 .zip 文件解压到同一个文件夹(或 NEW FOLDER)中。下载 dex2jar 并将其解压缩到同一文件夹(或 NEW FOLDER)。将 classes.dex 文件移动到 dex2jar 文件夹中。现在打开命令提示符并将目录更改为该文件夹(或 NEW FOLDER)。然后写入 d2j-dex2jar classes.dex(对于 mac 终端或 ubuntu 写入 ./d2j-dex2jar.sh classes.dex)并回车。您现在在同一文件夹中拥有 classes.dex.dex2jar 文件。下载java反编译器,双击jd-gui,点击打开文件,从那个文件夹打开classes.dex.dex2jar文件:现在你得到了类文件。通过 src 名称保存所有这些类文件(在 jd-gui 中,单击 File -> Save All Sources)。在这个阶段,您获得了 java 源代码,但 .xml 文件仍然无法读取,因此请继续。
第 3 步:
现在打开另一个新文件夹
放入要解码的 .apk 文件 下载最新版本的 apktool 和 apktool 安装窗口(两者都可以从同一个链接下载)并将它们放在同一个文件夹中 打开命令窗口 现在运行类似 apktool 的命令 if framework- res.apk (如果你没有在这里得到它)和下一个 apktool d myApp.apk (其中 myApp.apk 表示你要解码的文件名)
现在您在该文件夹中获得了一个文件夹,并且可以轻松读取 apk 的 xml 文件。
第4步:
这不是任何步骤,只需将两个文件夹(在本例中为两个新文件夹)的内容复制到单个文件夹
并享受源代码...
这是另一种描述——以防万一有人被上面的描述卡住了。按照步骤:
从 http://ibotpeaches.github.io/Apktool/install/ 下载 apktool.bat(或 Linux 的 apktool)和 apktool_
注意:不允许反编译第三方包;本指南旨在仅从 APK 文件中恢复个人源代码;最后,生成的代码很可能会被混淆
apktool
返回 smali
文件?如何获取 java
文件?
虽然您可以反编译您的 APK
文件,但您可能会遇到一个大问题:
它不会返回您编写的代码。相反,它将返回编译器内联的任何内容,变量给定随机名称,函数给定随机名称。尝试反编译并将其还原为您拥有的代码可能需要比重新开始更多的时间。
可悲的是,这样的事情已经扼杀了许多项目。对于未来,我强烈建议学习版本控制系统,如 CVS、SVN 和 git 等。
以及如何备份它。
Play Store 上还有一个新应用程序,可以使用它反编译 apk(系统应用程序)并直接在智能手机上查看源代码。它将文件保存到您的 SD 卡,因此您也可以在计算机上查看它。它不需要root或其他东西。
只需安装并玩得开心。我认为这是反编译应用程序的最简单方法。
apktool 是您可以尝试的最佳选择。我已经用它保存了一些 xml,但老实说,我不知道它如何与 .java 代码一起使用。
即使您是唯一的编码员,我也会建议您拥有一个代码存储库。我一直在自己的项目中使用 Project Locker。它为您提供免费的 svn 和 git repos。
这两篇文章描述了如何结合使用 apktool
和 dex2jar
来获取一个 APK
文件并创建一个可以构建和运行它的 Eclipse 项目。
http://blog.inyourbits.com/2012/11/extending-existing-android-applications.html http://blog.inyourbits.com/2012/12/extending-existing-android-applications.html
基本上你:
使用 apktool 从 apk 中获取资源文件 使用 dex2jar 获取一个 jar 文件,其中包含 Eclipse 喜欢的格式的类。创建一个 Eclipse 项目,将其指向资源文件和新的 jar 文件 使用 zip 实用程序打开 jar 文件并删除现有资源 使用 JDGui 打开 jar 文件以查看源代码 从 JDGui 获取您需要的任何源代码,粘贴它在 Eclipse 中的一个类中并修改它 从 jar 文件中删除该类(因此您没有多次定义相同的类) 运行它。
apktool 将工作。您甚至不需要知道密钥库即可提取源代码(这有点吓人)。主要缺点是源代码以 Smali 格式而不是 Java 格式呈现。其他文件,如 icon 和 main.xml 都可以正常运行,至少值得您花时间恢复这些文件。最终,您很可能需要从头开始重新编写 Java 代码。
您可以找到 apktool here。只需下载 apktool 和适当的帮助程序(适用于 Windows、Linux 或 Mac OS)。我建议使用 7-zip 之类的工具来解压它们。
有几种方法可以做到这一点:
使用 Android Studio 3.0 中的“配置文件或调试 APK”功能。它允许您在 Android Studio 中打开和探索 APK。类被反编译成 smali。资源不会被提取,如果没有源代码(android studio 3.0 canary 9),诸如“转到定义”、“查找所有引用”和调试之类的东西就无法工作。一些额外的 smali 功能可能适用于 smalidea。使用 jadx。 Jadx 将给定 APK 中的代码反编译为 java 源文件。使用 apk 工具。 Apktool 是一个命令行工具,它为给定的 apk 提取资源并将代码反编译为 smali。您也可以使用 apktool 重新编译。下面是它的一个示例: $ apktool d test.apk I:在 test.apk 上使用 Apktool 2.2.4 I:加载资源表... I:使用资源解码 AndroidManifest.xml... I:从文件:1.apk I:常规清单包... I:解码文件资源... I:解码值 */* XMLs ... I:Baksmaling classes.dex ... I:复制资产和库.. . I: 复制未知文件... I: 复制原始文件... $ apktool b test I: 在测试上使用Apktool 2.2.4 I: 检查源是否已更改... I: 将smali 文件夹放入classes.dex。 .. I:检查资源是否改变... I:构建资源... I:构建apk文件... I:复制未知文件/目录...
可能是很容易看到来源的:
在 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
该网站 https://www.apkdecompilers.com/ 自动完成。
我首先尝试了接受的答案中提到的网站,但这对我不起作用。
在线工具下方:
http://www.javadecompilers.com/apk
一键完成所有操作:反编译的 .java 文件 + 资源 + xml(在一个 .zip 文件中)具有非常好的反编译器(jadx 在其他编译返回函数内的注释的地方/函数中返回 java 代码,如“无法反编译”或一些android 汇编程序/机器代码)
我将向您展示其他反编译 .apk 文件的方法。
您可以按照“prankul garg”中的前 2 个步骤进行操作。所以你还有另一个机会:
步骤 3':
下载“JD-GUI”,很容易找到这个。在“jd-gui.exe”中打开您的 .jar 文件。 (文件 > 打开文件 > '找到你的 .jar 文件')。完成此过程后,您可以将所有资源保存在 .zip 文件中。
所以,
1st - 您必须将 .apk 文件重命名为 .zip
第二 - 你必须解码 .dex 文件(如果你愿意,可以将 .apk 文件解码为 dex2jar,这是可能的)
3rd - 您必须使用 JD-GUI 解码 .jar 文件
根据您的情况,如果您的 android apk:
条件1:不硬化(腾讯乐谷/奇虎360/...)
选择1:使用在线服务
如:
使用 www.javadecompilers.com
去:
http://www.javadecompilers.com/apk 注意:内部使用 Jadx
注意:内部使用 Jadx
从 apk 自动解码到 java 源代码
脚步:
upload
apk 文件 + 点击 Run
+ 等待一段时间 + 点击 Download
以获取 zip + 解压缩 ->
sources/com/{yourCompanyName}/{yourProjectName}
是你预期的java源代码
选择2:自己反编译/破解
使用相关工具自行反编译/破解:
使用 jadx/jadx-gui 将 apk 转换为 java 源代码
下载 jadx-0.9.0.zip 然后解压缩得到 bin/jadx
,然后:
命令行模式:在终端运行:jadx-0.9.0/bin/jadx -o output_folder /path_to_your_apk/your_apk_file.apk output_folder 将显示解码的源和资源 sources/com/{yourCompanyName}/{yourProjectName} 是您预期的 java 源代码
在终端运行:jadx-0.9.0/bin/jadx -o output_folder /path_to_your_apk/your_apk_file.apk
output_folder 将显示解码的源和资源 sources/com/{yourCompanyName}/{yourProjectName} 是您预期的 java 源代码
sources/com/{yourCompanyName}/{yourProjectName} 是您预期的 java 源代码
GUI 模式双击运行 jadx-0.9.0/bin/jadx-gui (Linux 的 jadx-gui.sh / Windows 的 jadx-gui.bat) 打开 apk 文件它会自动解码 -> 查看你预期的 java 源代码全部保存或保存作为 Gradle 项目
双击运行 jadx-0.9.0/bin/jadx-gui (Linux 的 jadx-gui.sh / Windows 的 jadx-gui.bat)
打开.apk文件
它将自动解码 -> 查看您预期的 java 源代码
全部保存或另存为 Gradle 项目
例如:
https://i.stack.imgur.com/hsqVP.png
条件2:硬化(腾讯乐谷/奇虎360/...)
3 steps
的主要方法:
apk/app 到 dex dex 到 jar jar 到 java src
详细解释:
Step1: apk/app 到 dex
使用工具 (FDex2
/DumpDex) 从正在运行的应用转储/挂钩(一个或多个)dex
文件
脚步:
准备环境
一个有根的android真正的模拟器在这里使用中国应用程序播放器夜神启动或Nox
真手机
或模拟器在这里使用Nox App Player夜神使用中文改编
这里使用的是中文Nox App Player夜神应用
将您的 android apk 安装到手机或模拟器
到手机或模拟器
安装了 Xposed 安装程序
将FDex2/DumpDex安装到XPosed并启用注:需要重启Xposed才能使FDex2正常工作 FDex2下载地址,中文:脱壳工具 FDex2-CSDN下载链接:https://pan.baidu.com/s/1lTF8CN96bxWpFwv7J174lg 采集码:3e3t
注意:需要重启 Xposed 才能使 FDex2 工作
FDex2下载地址,中文:脱壳工具FDex2-CSDN下载链接:https://pan.baidu.com/s/1lTF8CN96bxWpFwv7J174lg提取码:3e3t
脱壳工具 FEx2-CSDN下载
链接:https://pan.baidu.com/s/1lTF8CN96bxWpFwv7J174lg 提取码:3e3t
将您的 android apk 安装到手机/模拟器
从正在运行的应用程序中转储 dex
运行 FDex2 然后单击您的 apk 名称以稍后启用以捕获/挂钩 dex
(在手机/模拟器中)运行您的应用程序
在其根文件夹中的/data/data/com/yourCompanyName/yourProjectName中找到并复制出整个apk资源的转储通常会找到几个dex文件
在其根文件夹中通常会找到几个 dex 文件
Step2:dex转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
Step3: jar 到 java src
使用其中一种工具:
贾克斯
基于 procyon 的 Procyon GUI 工具:Luyten Bytecode Viewer
基于 procyon 的 GUI 工具:Luyten Bytecode Viewer
卢腾
字节码查看器
CRF
京东图形界面
其他一些: Krakatau Fernflower Cavaj
喀拉喀托
蕨花
卡瓦伊
将 jar
转换为 java src
对于从 jar 到 java src 的转换效果:
Jadx
> Procyon
> CRF
>> JD-GUI
所以推荐使用:Jadx
/jadx-gui
脚步:
双击运行 jadx-gui
打开.dex文件
文件 -> 全部保存
例如:
https://i.stack.imgur.com/XLwxO.png
导出的 java src:
https://i.stack.imgur.com/xKCeJ.png
更详细的解释可以看我的在线电子书中文教程:
安卓应用的安全和破解教程github上的源码:crifan/android_app_security_crack: 安卓应用的和破解
github上的教程源代码:crifan/android_app_security_crack:安卓应用的安全和破解
Apktool 用于逆向工程第 3 方、封闭、二进制 Android 应用程序。
它可以将资源解码为几乎原始的形式,并在进行一些修改后重建它们。
它使逐步调试 smali 代码成为可能。此外,由于类似项目的文件结构和一些重复性任务(如构建 apk 等)的自动化,它还使使用应用程序变得更容易。
http://ibotpeaches.github.io/Apktool/
apktool 是必经之路。在线 apktool 服务也存在:http://www.javadecompilers.com/apktool
显然,由于服务“在线性质”而存在一些限制:您可以提取和研究资产和清单文件,但目前无法重新编译应用程序。
尽管如此,这仍然是一种“打开”安卓应用程序的便捷方式。
你可以试试DexPatcher。它甚至与 Android Studio 集成。它在内部使用 Apktool 和 Dex2Jar。
您也可以独立使用这些工具。 Apktool 反编译 apk,并提取 .dex 文件,可以进一步使用 Dex2Jar 将其转换为 jar。使用 JD-GUI 可以反编译 Jar。您可以借助该工具查看 Java 代码。虽然无法保证反编译代码与实际代码的相似性。市场上有一些先进的 code obfuscation 工具,它们会弄乱代码,使其难以反编译/理解。例如。保卫
Android Studio 让您可以分析任何 apk 文件。
- 从构建菜单中选择分析 apk 选项并选择 apk 文件。 2 - 这将为您生成 classes.dex 文件和其他文件。 3 - 单击 classes.dex,它将为您提供文件夹、包、库和文件的列表。 4 - 从和 android studio 设置安装一个名为“Dex to Jar”的插件 5 - 单击提取项目的任何活动文件,然后从构建菜单中选择 dex to jar。
这将为您生成 java 文件的实际代码。
干杯。
第 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 文件。
将两个文件夹的内容复制到一个文件夹
完毕 !
最简单的方法是使用 Apk OneClick Decompiler。这是一个反编译和反汇编 APK(android 包)的工具包。
特征
所有功能都集成到 Windows 的右键菜单中。
将 APK 类反编译为 Java 源代码。
将 APK 反汇编为 smali 代码并解码其资源。
通过右键单击将APK安装到手机。
编辑 smali 代码和/或资源后重新编译 APK。重新编译期间:
优化png图片
签署 apk
Zipalign
要求
必须安装 Java 运行时环境 (JRE)。
您可以从此链接下载它Apk OneClick Decompiler
享受那个。
我发现以下是最简单的方法:
将您的 app.apk 重命名为 app.zip(将扩展名从 apk 更改为 zip)将 zip 文件解压缩到一个文件夹中 使用 JADX 工具读取源代码,该源代码存在于 classes.dex 文件中。
有一个应用程序,通常只需点击几下即可完成。 https://github.com/Nuvolect/DeepDive-Android
选择应用程序,在“已安装的应用程序”下选择您的应用程序。如果它不存在,您可以加载 APK。选择“Extract APK” 选择“Unpack APK” 选择“Decompile with Jadx”。这可能需要几秒钟或几分钟,具体取决于您设备的速度
之后,您可以浏览源代码,使用 elFinder 将其下载到另一台计算机或使用 Lucene 搜索。
除了 Jadx,它还有 CFR 和 Fernflower 反编译器。
我开发了一个工具 - 代码分析器,它在 iPhone/iPad/Mac 上运行,用于分析 Java/Android 文件,https://decompile.io
https://i.stack.imgur.com/yHiJ0.jpg
https://i.stack.imgur.com/fSIG4.jpg
1. 从原生 Android 应用程序中提取源代码
原生 Android 应用程序的源代码并不难获得,但它确实需要与 Windows、Mac 和 Linux 兼容的额外工具。在工具方面,我个人最喜欢的是 dex2jar 和 JD-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 文件,您应该会看到如下内容:
https://i.stack.imgur.com/PxMBg.png
Android SDK 附带 Proguard,它是一个混淆模块。你问什么是混淆?
通过 Wikipedia 进行混淆:
混淆(或混淆)是在交流中隐藏预期意义,使交流变得混乱、故意模棱两可且难以解释。
虽然混淆不会加密您的源代码,但它会使其更难理解。配置 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 的模块。
市场上有很多将apk文件反编译成java类的应用程序和方法,但是如果应用程序是用ProGuard规则编译的,那么你就麻烦了,因为这个规则会将所有的dex文件压缩成一个小字符名称,然后您就无法追溯实现。请参阅 https://developer.android.com/studio/build/shrink-code 了解模式说明。
快乐的编码...
为了反编译 APK 并从中获取代码,您有多个在线工具 &我通常更喜欢使用 Online APK Decompiler。
它非常易于使用,几分钟内您就可以从中下载源代码。
如果你想download APK from playstore和decompile。您也可以轻松地从中下载它。
几天来,我一直在让自己发疯,试图让 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
然后打开你的类文件!
使用此工具 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
对的,这是可能的。
有大量软件可用于对 android .apk 文件进行逆向工程。
最近,我在我的网站上编制了一份 47 best APK decompilers 的最终清单。我把它们分成4个不同的部分。
Open Source APK Decompilers Online APK Decompilers APK Decompiler for Windows, Mac or Linux APK Decompiler Apps
我希望这个合集对你有所帮助。
链接:https://www.edopedia.com/blog/best-apk-decompilers/
单击解决方案(仅限 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
就是这样,享受
framework-res.apk
的人。从 here 下载