Fre*_*ind 8 java bytecode decompiler
我看到一些java反编译器可以将字节码反编译成可读的java源代码,我想知道来自java(不是其他JVM语言)的所有字节码是否可以再次反编译为java源代码?
更新
对不起,让我更清楚地提出问题.
刚谈谈JVM上的普通Java代码(没有Android,没有字节码增强,没有AOP,没有混淆),我实际上希望字节码可以被反编译.但是我不知道是否有编译成字节码的java代码形式,永远不能被反编译成可读的java源代码.
我想知道来自java(不是其他JVM语言)的所有字节码是否可以再次反编译为java源代码?
答案是不.
不保证反编译器适用于所有Java字节码:
典型的混淆器将故意重新排列字节码,使得常见的反编译器不会产生可读的源代码......并且可能不会产生有效的源代码.
许多反编译器在处理较新的Java结构时存在问题.
许多反编译器都存在从"复杂"源代码编译的字节码问题.
即使它们生成可编译的代码,也无法保证代码是正确的.
最重要的是,反编译器只能与其作者的智慧和勤奋能力一样好.我从来没有听说过一个完美的.