正在解压缩模糊的java字节码



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

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

之所以会出现这种情况,主要是因为模糊处理工具利用JVM字节码的不太受约束的规范来生成有效的字节码,而这些字节码不会映射回有效的Java代码(例如:攻击性重载)。

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

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

这里的一个成员开发了一个名为Fernflow的反编译器。它号称是一个专门为反编译代码设计的反编译器,但你可能想对它的说法持保留态度。上传到这里:https://github.com/Zidonuke/Bukkit-MinecraftServer/blob/master/tools/fernflower.jar?raw=true

最新更新