反编译及其工具

正编译过程:

自然语言 --> 程序语言(源程序)--> 机器语言(二进制代码)--> 执行

每一步都是一个【信息丢失】的过程。

编译器将源程序编译成机器语言是一个加密的过程。

再往后发展:

自然语言 --> 程序语言(源程序 --编译器---> 中间语言(字节码)--> 机器语言(二进制代码) --> 执行

中间语言词汇少,比较精炼,执行起来也更快。这些语言一般也会用上JIT技术,进一步把中间语言编译成机器语言(而非解释执行),执行效率也就跟那些原生的编译语言不相上下了。所以说能反编译的语言大多是能编译成【中间语言】的高级语言。


 

再后来为了防止源码被反编译出现了混淆器。

目前的.NET反编译工具有Reflector(收费),和ILSpy(开源、免费)。

 

posted @ 2016-08-01 15:30  香蕉有毒  阅读(129)  评论(0编辑  收藏  举报