.NET 反编译

作者:vkvi 来源:ITPOW(原创) 日期:2008-6-30

MSIL

将 .NET 的程序编译后,生成的代码实际上与 VC++ 之类的目标程序是不一样的,.NET 编译后生成 MSIL(Microsoft Intermediate Language),属于中间语言,就像 Java 一样,之所以这样设计,大概是为了跨平台的考虑(当然还有其它一些原因)。

反汇编

.NET Framework SDK 提供的名为 ILDASM 的反汇编实用工具,允许您将 .NET Framework 程序集反编译为 IL 程序集语言语句。为了启动 ILDASM,您必须确保已安装了 .NET Framework SDK。

反编译

MSIL 是可以被反编译的,也就是说可以把它变成源代码。当然这种源代码与编译之前的源代码还是不完全一样的,但是你仍然可以阅读它,更改它。类似的工具有:AnakrinoReflector for .NET

对抗反编译

最常用的对抗反编译的方法是模糊处理,即使用混淆器,使反编译之后的程序人很难理解,比如变量名尽是:a1、a2、a3……人看到头都大,要看懂程序,得花点功夫。很著名的混淆器有:Dotfuscator

还有一种是使用本地编译。它使编译输出与正常的 .NET 编译输出不同,有不同的工具,在运行时可能也需要这些工具辅助才能运行。

相关文章