有两个有用的工具可以从未知的 APK 文件生成 Java 代码(粗略但足够好)。
从 dex2jar 下载 dex2jar 工具。使用该工具将 APK 文件转换为 JAR: Windows:$ d2j-dex2jar.bat demo.apk dex2jar demo.apk -> ./demo-dex2jar.jar MacOS / Linux:$ d2j-dex2jar.sh -f demo.apk -o demo.jar 生成 JAR 文件后,使用 JD-GUI 打开 JAR 文件。您将看到 Java 文件。
输出将类似于:
https://i.stack.imgur.com/2CaEM.jpg
然后,您可以使用其他工具从 APK 文件中检索 AndroidManifest.xml 和资源文件(如图像、翻译等)。
Apktool $ java -jar apktool.jar -q decode -f demo.apk -o outputDir
AXMLParser $ apkinfo demo.apk
NinjaDroid $ ninjadroid demo.apk --all --extract
首先,我推荐this
视频,这可以消除您的所有疑虑
如果没有,请通过它
Procedure for decoding .apk files, step-by-step method:
Step 1:
创建一个新文件夹并将 .apk 文件放入其中(您要解码)。现在将此 .apk
文件的扩展名重命名为 .zip
(例如:从 filename.apk 重命名为 filename.zip)并保存。
如果在转换为 .zip 时出现问题,请参考 link
获得 .zip 后,现在您将获得 classes.dex 文件等。在此阶段您可以看到可绘制文件,但看不到 xml 和 java 文件,所以继续。如果您没有看到扩展,请检查配置
Step 2:
现在在同一文件夹中提取此 zip apk 文件。现在从这个 link
下载 dex2jar
并将其解压缩到同一个文件夹。现在打开命令提示符并将目录更改为该文件夹。
然后写 dex2jar classes.dex
并按 Enter。现在您在同一文件夹中获得 classes.dex.dex2jar
文件。
然后下载java decompiler
现在双击 jd-gui 并单击打开文件。然后从该文件夹打开 classes.dex.dex2jar
文件。现在你得到类文件并通过 src 名称保存所有这些类文件(单击文件然后单击 jd-gui 中的“保存所有源”)。解压缩该 zip 文件 (classes_dex2jar.src.zip)
,您将获得应用程序的所有 java 文件。
在这个阶段,您获得了 java 源代码,但 xml 文件仍然无法读取,所以继续。
Step 3:
现在打开另一个新文件夹并将这些文件
将要解码的 .apk 文件下载 Apktool for windows v1.x 和 Apktool
使用谷歌安装窗口并放在同一个文件夹中
使用google下载framework-res.apk文件并放在同一个文件夹(并非所有apk文件都需要framework-res.apk文件)打开命令窗口导航到APKtool的根目录并键入以下命令:apktool if framework-res .apk。
上面的命令应该导致 Framework installed ...
。
apktool d "appName".apk ("appName" 表示您要解码的应用程序) 现在您在该文件夹中获得了一个文件夹,现在您也可以轻松读取 xml 文件。
Step 4:
最后我们得到了 res/
以及项目的 java 代码,这是我们开始时的目标。
PS 如果您无法通过上述步骤获取 res 文件夹,请安装新的 apktool 是否安装了 Java 1.7?安装 Apktool 2.x 是否安装了 Java 1.6 或更高版本?安装 Apktool 1.x
Enjoy and happy coding
apktool.jar
不在同一个包中,我从以前的包中得到它并将其粘贴到与 apktool
相同的目录中。
没有软件&没有太多步骤..
只需上传您的 APK 并从该站点获取您的所有资源..
https://www.apkdecompilers.com/
本网站将反编译 APK 文件中嵌入的代码并提取文件中的所有其他资产。
注意:我反编译我的 APK 文件并在一分钟内从该网站获取代码
更新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 -> 它给出结果
https://i.stack.imgur.com/66BUx.png
在 Android Studio 3.5 中,这非常容易,您只需一分钟即可实现。以下是一个逐步的过程。
1:打开 Android Studio,按窗口按钮 -> 键入 Android Studio -> 点击图标打开 android studio 启动画面,如下所示。
https://i.stack.imgur.com/DcoZs.png
2:在这里你可以看到一个选项“Profile or debug APK”点击它并选择你的apk文件然后点击ok。
https://i.stack.imgur.com/71wML.png
3:它会在一分钟内打开你所有的清单和java类,具体取决于apk的大小。
https://i.stack.imgur.com/bnhhr.png
而已。
并不真地。有许多 dex 反汇编器/反编译器套件 such as smali 或 dex2jar 将生成半人类可读的输出(在 dex2jar 的情况下,您可以通过使用类似 JD-GUI 的东西来获取 java 代码,但是过程并不完美,您不太可能 100% 重新创建源代码。但是,它可能为您提供一个开始重建源代码树的地方。
有一种新方法可以做到这一点。
Android Studio 2.2 有 APK Analyzer 它会提供很多关于 apk 的信息,在这里查看:- http://android-developers.blogspot.in/2016/05/android-studio-22-preview-new-ui.html
https://i.stack.imgur.com/lOWyF.png
以下是一些可用于执行从 APK 文件到源代码的逆向工程的工具:
Dex2jar Java 反编译器 Apktool Apk 分析器
对于 Android 平台,您可以试用 Play 商店中提供的 ShowJava。
您可以通过应用程序界面查看生成的代码,生成的 java 文件和文件夹结构存储在 /sdcard
的 ShowJava
文件夹中,以及转换后生成的 .jar
文件。
该应用程序是免费的,主视图底部有一个广告横幅,但有一个应用内购买选项(3,99 美元)可以将其删除。除了删除广告横幅外,应用内购买不会添加任何功能。
披露:我不是该应用程序的开发人员,我也与他没有任何关系。
https://i.stack.imgur.com/NpIEI.jpg
请按照以下步骤执行此操作或简单地使用 apkToJava gem 进行此过程,它甚至会负责安装所需的工具以使其工作。
将apk文件转换为zip
解压文件
从中提取 classes.dex
使用dex转jar将classes.dex转成jar文件
使用jadx gui打开jar文件作为java源代码
d2j-dex2jar
(v0.0.9.15)。res
文件夹,其中包含不可读的 xml 文件Mac
中,如果您不能使用 dex2jar:permission denied
然后执行此操作$sudo chmod +x d2j-dex2jar.sh