【发布时间】:2011-09-20 14:49:04
【问题描述】:
我在一个运行 Java 应用程序的平台上工作。这些应用程序经常被混淆,其中大多数使用 ProGuard,这使得调试我们平台的问题变得非常困难。
目前我正在使用 JD (http://java.decompiler.free.fr/) 来反编译这些应用程序。京东做得不错,但有时生成的代码太难理解了。
这似乎主要是因为混淆工具利用 JVM 字节码的约束较少的规范来生成不会映射回有效 Java 代码的有效字节码(例如:激进的重载)。
所以,我的问题是:是否有专门用于处理混淆字节码的反编译器?
【问题讨论】:
-
@anirudh4444 它只在 Windows 上运行。我需要在 Ubuntu 上运行的东西。
-
你可以使用 wine/mono 在 ubuntu 上运行它。
-
逆向工程混淆字节码真的很难。比一开始混淆它要困难得多。准备好花费大量金钱或花大量时间手动学习和翻译 jvm 字节码。
-
我制作了一个专门用于处理混淆字节码的反编译器。生成的代码不一定漂亮,但至少它会生成有效的代码而不会崩溃,因为这很容易让我尝试过的所有其他反编译器都陷入困境。你可以在这里得到它。 github.com/Storyyeller/Krakatau
标签: java jvm bytecode proguard decompiler