反编译Android应用程序

逆向工程 反编译 爪哇 安卓 字节码
2021-06-18 01:22:11

Android java代码编译成Dalvik字节码,可读性很强。我想知道,理论上和实践中是否可以为Dalvik字节码编写一个反编译软件?

4个回答

这不仅可能,而且已经完成,而且不止一次。这是我知道的三个,可能还有更多。

  1. 科迪·布劳西斯 (Cody Brocious) 的 Kivlad

    http://www.matasano.com/research/kivlad/

  2. Zost 的 DAD(Androguard 项目):

    http://code.google.com/p/androguard/wiki/Decompiler

  3. JEB by Nicolas Falliere(商业)

    http://www.android-decompiler.com/

然后就是在Dalvik二进制上使用dex2jarDare后可以使用的所有Java反编译器

我认为即使使用当前的 Java 反编译器,通过修补它们的代码也应该是可能的。它们至少有一个很大的不同——JVM 是基于堆栈的,而 Dalvik 是基于寄存器的。这种差异可以用不多的代码来处理。第二个区别 - 字节码格式。所以你需要使用能够反汇编Dalvik字节码格式的代码。

不要忘记http://dexter.dexlabs.org/ - Dexter 是一个静态的 android 应用程序分析工具。

jadx有 CLI 和 GUI,而且它是开源的。