编译和反编译
.NET 中的编译是把开发人员写的 C# 代码转化为计算机可理解的代码的过程,也就是中间语言代码(IL代码)。在这个过程中,C# 源代码被转换为可执行文件(exe或者dll 文件)。

反编译则和编译相反,它是把可执行文件的 IL 代码转换为源代码,这样可以对软件方便进行分析,理解以及修改。

下面是几个流行的 .NET 反编译工具。
Ildasm.exe
Ildasm.exe 是一个免费的反编译工具,当您安装了 Visual Studio 开发工具之后,Ildasm.exe 会自动安装。
你可以在下面的目录中找到这个工具。
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin

IlSpy .NET
ILSpy 是一个开源免费的反编译工具, 在 github 上面有 15k 的 star。
可以反编译 C# ,包括整个项目的反编译,并且 ILSpy 支持集成在 Visual Studio 开发工具中。

另外 ILSpy 也上架了微软应用商店。

Github:https://github.com/dnSpy/dnSpy
DnSpy
DnSpy 也是一个开源免费的 .NET 反编译工具,支持 C#、VB、F# 代码等,支持 .NET Core 和 .NET Framework。
DnSpy 拥有现代化的 UI 界面,包括蓝色、浅色和深色主题。
Github: https://github.com/dnSpy/dnSpy
JetBrains dotPeek
dotPeek 可以把任何 .NET 程序集反编译为等效的 C# 代码,由 JetBrains 公司开发,软件是免费的并且功能丰富。

同时 dotPeek 也支持和 Visual Studio 一样的一组颜色主题。

还可以可视化查看程序集之间的依赖关系。

END
做了一个 .NET 的学习网站,内容涵盖了分布式系统,数据结构与算法,设计模式,操作系统,计算机网络等,以及工作推荐和面试经验分享,欢迎来撩。
回复 dotnet 获取网站地址。
回复 面试题 获取 .NET 面试题。
回复 程序员副业 获取适合程序员的副业指南。