在 APK 上反编译.smali 文件

我下载了 APK 经理,它可以让我解压 APK 文件。

但是它只是解压缩它,并且不会将.smali 文件反编译成.java。

有没有可能把.smali 反编译成.java?

272476 次浏览

不,APK Manager 将 .dex文件反编译为 .smali,并将二进制 .xml反编译为人类可读的 xml。

顺序(基于 APK Manager 4.9)是 22选择包,然后 9反编译它。如果您按1而不是9,那么您将只是解压它(只有在您想要交换时才有用)。Png 图像)。

没有可用的工具反编译回 .java文件,很可能也不会有任何工具。还有一种替代方法,即使用 Dex2jar将 dex 文件转换为 .class文件,然后使用 jar 反编译器(例如免费的 JD-gui)将文本 java 变为纯文本。然而,这个过程远非最优,而且它不会生成工作代码,但是它足够体面,能够读取代码。

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时所需的步骤。

完成这项工作的基本要求。 返回文章页面 http://code.google.com/p/dex2jar/
Http://jd.benow.ca/

有一个新的跨平台(java)和开源工具,使您能够做到这一点,只需签出 https://bytecodeviewer.com

enter image description here

=========

编辑: 截至2017年4月,google 开发了一个新的开源工具,这个工具可以完成我们一直在寻找的 https://github.com/google/android-classyshark