8

我在一个运行 Java 应用程序的平台上工作。这些应用程序经常被混淆,其中大多数使用 ProGuard,这使得调试我们平台的问题变得非常困难。

目前我正在使用 JD ( http://java.decompiler.free.fr/ ) 来反编译这些应用程序。京东做得不错,但有时生成的代码太难理解了。

这似乎主要是因为混淆工具利用 JVM 字节码的约束较少的规范来生成不会映射回有效 Java 代码的有效字节码(例如:激进的重载)。

所以,我的问题是:是否有专门用于处理混淆字节码的反编译器?

4

2 回答 2

5

我怀疑任何反编译器都会这样做。但是,您可以使用ASM 之类的东西实现自定义字节码转换并重命名重载方法和变量名。

于 2011-06-22T18:02:28.903 回答
5

这里有一个成员开发的名为 Fernflower 的反编译器。它自称是专门为反编译代码而设计的反编译器,但是您可能希望对其声明持保留态度。它在这里上传: https ://github.com/Zidonuke/Bukkit-MinecraftServer/blob/master/tools/fernflower.jar?raw=true

于 2011-07-02T18:14:08.830 回答