编译」(compile),就有「反编译」(decompile)

同样的道理,有「编译」(compile),就有「反编译」(decompile);有「反编译」,就有「反反编译」。对于Java和.NET这种虚拟机器的中间码来说,尤其明显。

  Java程序编译后的结果是Java Bytecode,而.NET编译后的结果是CIL(Common Intermediate Language),两者都具有下列的特性:

  -同为堆栈式(stack-based)指令集。

  -同为高阶面向对象机器语言

  -和平台无关

  -Code Validation

  -Symbolic Link

  上述任何一点特色,都可以让程序变得更容易反编译,全部五点结合起来更是不得了。所以要反编译Java和.NET可以说是相当容易的。网络上就到处流传着Java的反编译器(decompiler),可以把编译后的档案反推出原始码,

Powered by Zoundry