在APK上反编译.smali文件

我下载了APKpipe理器 ,让我解压APK文件。

但它只解压缩它,不会将.smali文件反编译为.java。

是否有可能将.smali反编译为.java?

不,APKpipe理器.dex文件反编译.smali和binary .xml文件,以便于人们阅读xml。

序列(基于APKpipe理器4.9)是22 ,select包,然后9反编译它。 如果你按1而不是9,那么你只需要解压缩它(只有在你想交换.png图片时才有用)。

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

dex2jar: http : //code.google.com/p/dex2jar/

jd-gui: http : //jd.benow.ca/

编辑:我知道这里有一个地方在这个问题有非常相似的答案…将DEX反编译成Java源代码

dex2jar有助于反编译你的apk,但不是100%。 你将有一些与.smali文件的问题。 Dex2jar无法将其转换为java。 我知道一个应用程序,可以反编译你的apk源文件和.smali文件没有问题。 这是一个链接http://www.hensence.com/en/smali2java/

有一个新的交叉平台(Java)和开源工具,使您能够做到这一点,只需检查https://bytecodeviewer.com

在这里输入图像说明

=========

编辑:截至2017年4月,有一个由谷歌开发的新的开源工具,这意味着只做我们一直在寻找=> http://classyshark.com

我的build议是美德十工作室 。 该工具是免费的,但他们build议捐款。 它将所有必要的步骤(解压APK,反编译,反编译等)组合成一个易于使用的基于UI的导入过程。 在五分钟内你应该有Java源代码,比找出上述工具之一的命令行选项要less。

将smali编译为Java是一个不精确的过程,尤其是在小信号通过混淆器时。 你可以在网上find几个反编译器,但是其中只有一些反编译器仍然被维护。 有些会给你比其他更好的反编码。 阅读“更好”,比“更容易理解”。 不要期望反向工程的Java代码能够直接编译出来。 Virtuous Ten Studio内置了多个免费的Java反编译器,所以你可以轻松地尝试不同的反编译器(“生成Java源代码”步骤),看看哪一个能给你最好的结果,节省你自己find这些反编译器的时间,了解如何使用它们。 其中有CFR,这是less数免费的,仍然保持的反编译器之一。

作为输出,除其他外,还包含一个包含所有已反编译的Java源代码的文件夹结构。 然后,您可以将其导入到IntelliJ IDEA或Eclipse中以进行进一步的编辑,分析(例如转到定义,查找用法)等。

我同意那个。

Dex2jar将会生成一个WORKING jar文件,你可以使用你从apktool获得的xmls文件添加你的项目源代码。

但是,JDGUI生成的.java文件通常具有错误。

这与我猜测的代码混淆有关。

为了获得将.apk文件转换为.java文件的实用视图,请查看https://www.youtube.com/watch?v=-AX4NYE-9V8video。; 你会得到更多的好处和清楚的理解。 它清楚地演示了如果您使用的是mac OS您所需的步骤。

完成这项工作的基本要求。 1. http://code.google.com/p/dex2jar/
2. http://jd.benow.ca/

Interesting Posts