编译和反编译
.NET 中的编译是把开发人员写的 C# 代码转化为计算机可理解的代码的过程,也就是中间语言代码(IL代码)。在这个过程中,C# 源代码被转换为可执行文件(exe或者dll 文件)。
反编译则和编译相反,它是把可执行文件的 IL 代码转换为源代码,这样可以对软件方便进行分析,理解以及修改。
下面是几个流行的 .NET 反编译工具。
Ildasm.exe
Ildasm.exe 是一个免费的反编译工具,当您安装了 Visual Studio 开发工具之后,Ildasm.exe 会自动安装。
你可以在下面的目录中找到这个工具。
C:Program Files (x86)Microsoft SDKsWindowsv7.0Abin
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 一样的一组颜色主题。
还可以可视化查看程序集之间的依赖关系。
您最喜欢使用哪个反编译工具呢?