我下载了 APK 经理,它可以让我解压 APK 文件。
但是它只是解压缩它,并且不会将.smali 文件反编译成.java。
有没有可能把.smali 反编译成.java?
不,APK Manager 将 .dex文件反编译为 .smali,并将二进制 .xml反编译为人类可读的 xml。
.dex
.smali
.xml
顺序(基于 APK Manager 4.9)是 22选择包,然后 9反编译它。如果您按1而不是9,那么您将只是解压它(只有在您想要交换时才有用)。Png 图像)。
没有可用的工具反编译回 .java文件,很可能也不会有任何工具。还有一种替代方法,即使用 Dex2jar将 dex 文件转换为 .class文件,然后使用 jar 反编译器(例如免费的 JD-gui)将文本 java 变为纯文本。然而,这个过程远非最优,而且它不会生成工作代码,但是它足够体面,能够读取代码。
.java
.class
Dex2jar: https://github.com/pxb1988/dex2jar
http://jd.benow.ca/
编辑: 我知道在这里的某个地方有一个问题有着非常相似的答案... ... < a href = “ https://stackoverflow. com/questions/1249973/反编译-DEX-into-Java-sourcecode”> 反编译 DEX 到 Java 源代码
我同意。
Dex2jar 将生成一个 WORKING jar,您可以使用从 apktool 获得的 xml 将其添加为项目源。
然而,JDGUI 生成的.java 文件往往有错误。
我猜这和代码混淆有关。
Dex2jar 帮助反编译你的 apk,但不是100% 。你会有一些问题。小文件。Dex2jar 无法将其转换为 java。我知道一个应用程序,可以反编译您的 apk 源文件,没有问题。小文件。这里是一个链接 http://www.hensence.com/en/smali2java/
我的建议是 德十工作室。这个工具是免费的,但他们建议捐赠。它将所有必要的步骤(解包 APK、烘焙、反编译等)组合成一个易于使用的基于 UI 的导入过程。在五分钟之内,您应该有了 Java 源代码,比计算出上面提到的工具之一的命令行选项所需的时间要短。
将 smali 反编译为 Java 是一个不精确的过程,特别是如果小型构件经过模糊处理器。你可以在网上找到几个反编译器,但是只有一些还在维护中。有些代码比其他代码反编译得更好。读“更好”是指比别人“更容易理解”。不要指望反向工程的 Java 代码可以开箱即用地编译。Virous Ten Studio 内置了多个免费的 Java 反编译器,所以你可以很容易地尝试不同的反编译器(“生成 Java 源代码”步骤) ,看看哪一个给你最好的结果,节省你自己找到那些反编译器并弄清楚如何使用它们的时间。其中包括 CFR,它是为数不多的免费且仍然维护的反编译器之一。
作为输出,您将收到一个包含所有反编译 Java 源代码的文件夹结构。然后您可以将其导入 IntelliJ IDEA 或 Eclipse 进行进一步编辑、分析(例如,转到定义,查找用法)等。
用于获得转换的实用视图。将 apk 文件转入。Java 文件只需查看 https://www.youtube.com/watch?v=-AX4NYE-9V8视频。你会得到更多的好处,更清楚地了解。它清楚地演示了使用 mac OS时所需的步骤。
mac OS
完成这项工作的基本要求。 返回文章页面 http://code.google.com/p/dex2jar/ Http://jd.benow.ca/
有一个新的跨平台(java)和开源工具,使您能够做到这一点,只需签出 https://bytecodeviewer.com
=========
编辑: 截至2017年4月,google 开发了一个新的开源工具,这个工具可以完成我们一直在寻找的 https://github.com/google/android-classyshark