反编译混淆的java字节码

Joa*_*urg 8 java jvm bytecode proguard decompiler

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

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

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

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

Eug*_*hov 5

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


old*_*inb 5

有一个名为Fernflower的反编译器由一名成员在这里开发.它自称是一个专门针对反编译代码而制作的反编译器,但是你可能想要用它来理解它的主张.它上传到这里:https: //github.com/Zidonuke/Bukkit-MinecraftServer/blob/master/tools/fernflower.jar?raw = true