.NET反编译工具评测

在软件开发过程中,反编译工具对于理解现有代码库、调试未知代码或学习编程语言等场景都非常有用。本文将对几款完全免费的.NET反编译工具进行评测,这些工具不仅可以在非商业环境中免费使用,也可以在商业环境中免费使用。

评测工具列表

以下是注意到的一些免费的.NET反编译工具:

  • Ildasm.exe(随Visual Studio 2022附带)
  • Telerik JustDecompile()
  • dnSpyEx()
  • ILSpy()
  • JetBrains dotPeek()

测试应用

为了测试这些反编译工具,创建了一个小型的C# 11/.NET 7项目,包含2个程序集。以下是原始代码的示例:

namespace AlphaAssembly { internal class Program { static void Main(string[] args) { Console.WriteLine(Resource1.HW); A a2 = new A2(); a2.PrintMessage(); A a3 = new A3(); a3.PrintMessage(); B b2 = new B2(); b2.PrintMessage(); B b3 = new B3(); b3.PrintMessage(); } } public class A { public virtual void PrintMessage() { Console.WriteLine(Resource1.HWA); } } public class A2 : A { public override void PrintMessage() { Console.WriteLine(Resource1.HWA2); } } public class A3 : A { public override void PrintMessage() { Console.WriteLine(Resource1.HWA3); } } } namespace BetaAssembly { public class B { public virtual void PrintMessage() { Console.WriteLine("Hello World from B"); } } public class B2 : B { public override void PrintMessage() { Console.WriteLine("Hello World from B2"); } } public class B3 : B { public override void PrintMessage() { Console.WriteLine("Hello World from B3"); } } }

Ildasm.exe

Ildasm.exe是微软提供的一个IL反编译器,它随Visual Studio一起自动安装。虽然它的许可证不是完全免费的,但大多数.NET开发者都会拥有它,因为它是Visual Studio的一部分。

Telerik JustDecompile

Telerik JustDecompile是一个免费的反编译工具,但似乎已经不再维护。它不能很好地处理.NET7,但仍然可以提供基本的C#代码反编译。

dnSpyEx

dnSpyEx是dnSpy项目的非官方延续(分支),它是一个开源工具,可以在Windows平台上运行。它提供了IL代码查看和C#代码反编译的功能,并且支持调试功能,这对于逆向工程非常有用。

ILSpy

ILSpy是一个开源工具,支持Linux、Mac和Windows平台。它允许用户选择特定的C#版本进行反编译,这对于分析和比较不同版本的C#语言非常有用。

JetBrains dotPeek

JetBrains dotPeek是一个免费的工具,提供了丰富的功能和良好的图形界面。它支持将程序集反编译为C#项目,并且提供了PE格式头信息查看器和依赖图等功能。

根据评测,JetBrains dotPeek以其稳定性、功能丰富、良好的图形界面和良好的维护成为了个人最爱。如果正在寻找一个稳定、功能丰富、界面友好且维护良好的应用程序,dotPeek是选择。

ILSpy也是一个给人留下深刻印象的工具,它允许反编译到选定版本的C#,这在分析和比较不同版本的C#语言时非常有用。

如果想要调试一个没有源代码的.NET应用程序,dnSpyEx是唯一提供此功能的反编译器。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485