Android java代码编译成Dalvik字节码,可读性很强。我想知道,理论上和实践中是否可以为Dalvik字节码编写一个反编译软件?
反编译Android应用程序
逆向工程
反编译
爪哇
安卓
字节码
2021-06-18 01:22:11
4个回答
这不仅可能,而且已经完成,而且不止一次。这是我知道的三个,可能还有更多。
科迪·布劳西斯 (Cody Brocious) 的 Kivlad
Zost 的 DAD(Androguard 项目):
JEB by Nicolas Falliere(商业)
我认为即使使用当前的 Java 反编译器,通过修补它们的代码也应该是可能的。它们至少有一个很大的不同——JVM 是基于堆栈的,而 Dalvik 是基于寄存器的。这种差异可以用不多的代码来处理。第二个区别 - 字节码格式。所以你需要使用能够反汇编Dalvik字节码格式的代码。
不要忘记http://dexter.dexlabs.org/ - Dexter 是一个静态的 android 应用程序分析工具。
jadx有 CLI 和 GUI,而且它是开源的。