【发布时间】:2013-04-01 01:42:31
【问题描述】:
我看到一些java反编译器可以将字节码反编译成可读的java源,我想知道是否所有来自java(不是其他JVM语言)的字节码都可以再次反编译成java源?
更新
对不起,让我把问题说清楚一点。
只说JVM上正常的Java代码(没有Android,没有字节码增强,没有AOP,没有混淆),其实我希望字节码可以反编译。但是我不知道是否有某种形式的java代码编译成字节码,永远无法被反编译成可读的java源代码。
【问题讨论】:
-
大部分 java 代码都是用本地语言编写的……所以你可以“c”方法声明而不是它的主体……另外,例如 android 会混淆源代码……即使你反编译它也会让你更难阅读。
-
理论上,任何非混淆类都可以很好地反编译。在实践中,所有现有的反编译器对于特别奇怪和复杂的类都将失败。许多人也不能很好地处理窄基元的类型转换。
标签: java bytecode decompiler