如何将Android DEX(虚拟机字节码)文件反编译成相应的Java源代码?


当前回答

反编译android应用程序最简单的方法是从playstore下载一个名为ShowJava的应用程序。只需从应用程序列表中选择需要反编译的应用程序。你可以使用三种不同的反编译器来反编译应用程序,即-

CFR 0.110, JaDX 0.6.1或FernFlower(分析反编译器)。

其他回答

您可以尝试JADX (https://bitbucket.org/mstrobel/procyon/wiki/Java%20Decompiler),这是一个完美的DEX反编译工具。

是的,它也可以在线(my:0))新网站:http://www.javadecompilers.com/apk/

如果您不打算下载dex2jar,那么只需使用apk_grabber python脚本将任何apk反编译到jar文件中。然后使用jd-gui读取它们。

在使用dex2jar/apktool时,有时会出现坏代码,最明显的是在循环中。为了避免这种情况,可以使用jadx,它可以将dalvik字节码反编译成java源代码,而不需要像dex2jar那样先创建.jar/.class文件(我认为apktool使用dex2jar)。它也是开源的,正在积极开发中。它甚至有一个GUI,专为GUI爱好者设计。试一试!

Android逆向工程是可能的 . 按照以下步骤从apk文件中获取.java文件。

步骤1。使用dex2jar

从。apk文件生成。jar文件 命令:dex2jar sampleApp.apk

步骤2。使用JD-GUI反编译.jar

它会反编译。class文件,也就是说,我们会从apk中得到模糊的。java文件。

很容易

获取这些工具:

Dex2jar将dex文件转换为jar文件 以查看jar中的Java文件

源代码可读性很强,因为dex2jar做了一些优化。

过程:

下面是如何反编译的过程:

步骤1:

将test_apk-debug.apk中的classes.dex转换为test_apk-debug_dex2jar.jar

d2j-dex2jar.sh -f -o output_jar.jar apk_to_decompile.apk
d2j-dex2jar.sh -f -o output_jar.jar dex_to_decompile.dex

注1:在Windows机器中,所有的.sh脚本都被.bat脚本取代

注2:在linux/mac上不要忘记sh或bash。完整的命令应该是:

sh d2j-dex2jar.sh -f -o output_jar.jar apk_to_decompile.apk 

注意3:另外,请记住向dex2jar-X添加执行权限。例如sudo chmod -R + X dex2jar-2.0

dex2jar文档

步骤2:

在JD-GUI中打开罐子