为什么可以轻松地重构Java类文件

时间:2013-08-23 11:27:16

标签: java reverse-engineering bytecode

我想知道为什么Java类文件比任何只能被反汇编成汇编代码的Windows可执行文件轻松重建,而不是代码本身。

谢谢。

2 个答案:

答案 0 :(得分:1)

Java类文件很容易进行逆向工程。

格式非常规则且非常有限:VM必须能够验证代码是否符合Java代码的强类型规则。这类似于C编译器的输出,其中所有优化都被停用:程序结构清晰可见。 (在Java模型中,当JIT编译器运行时,优化发生在VM本身。)

请注意,您可以使用模糊处理来帮助保护Java免受逆向工程的影响。

答案 1 :(得分:0)

主要是因为Java类文件包含方法和字段名称,因此反编译的src看起来非常像原始文件,除了注释。 BTW源可能无法100%恢复,例如原始src String s = "123" + 4;将被编译/反编译为String s = "1234";