Abstract: In this article, we are giving an overview of 5 free .NET Decompilers. We focus only on free tools that you can run for free in non-commercial and commercial environments.
1 Introduction
In this article, we are giving an overview of a selection of FREE .NET Decompilers available today. We focus only on completely free full-versions tools that can be run for free in both non-commercial and commercial environments. If a software engineer invests time and effort in learning and building skills with some tool at home that is free only for a non-commercial environment and then in his workplace founds that the company is not planning to buy that particular tool, it is a wasted time and effort.
1.1 Tools Tested
Here is a list of free .NET Decompilers that caught our attention:
- Ildasm.exe (comes with Visual Studio 2022)
- Telerik JustDecompile (https://www.telerik.com/products/decompiler.aspx )
- dnSpyEx (https://github.com/dnSpyEx/dnSpy/releases )
- ILSpy (https://github.com/icsharpcode/ILSpy/releases )
- JetBrains dotPeek (https://www.jetbrains.com/decompiler/ )
2 Test application
To test decompilers, we created a small C#11/.NET7 project consisting of 2 assemblies. Here is what the solution looks like:

And here is the original code:
//======================================
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");
}
}
3 Ildasm.exe
3.1 Details
- Product: Ildasm.exe IL Disassembler
- Company: Microsoft. This tool is automatically installed with Visual Studio.
- Website: https://learn.microsoft.com/en-us/dotnet/framework/tools/ildasm-exe-il-disassembler
- Platforms: Windows
- License: Visual Studio license
3.2 Overview
You can start it from the command line:

Basic assembly view

And here is the IL code of AlphaAssembly.A.PrintMessage() method:

And here is the Metadata info view:

3.3 Impressions
- The license is not free, but it comes with Visual Studio, so most .NET developers will have it
- Very basic functionality, almost at the level of “Proof of concept”.
- Just enable IL viewing, no decompiling into C# code.
4 Telerik JustDecompile
4.1 Details
- Product: JustDecompile
- Company: Telerik
- Website: https://www.telerik.com/products/decompiler.aspx
- Platforms: Windows
- License: Website says: Free. For everyone. Forever.
4.2 Overview
When I started the app and tried to load my AlphaAssembly.dll, I got a very unpleasant window:

It wanted me to point it to .NET 7. Here is how I resolved it:

Here is the basic assembly view:

Here is class AlphaAssembly.A in IL:

Here is class AlphaAssembly.A in C#:

When we tried to reverse engineer BetaAssembly into a C# project, we got this:


4.3 Impressions
- It seems that this app is no longer maintained. It does not know how to handle .NET 7.
- It can still provide useful decompiling to basic C# code on the file level
- Options present are functional but limited. Not so many fancy tools/options you can see in other products.
- Strange for such a big name like “Telerik” that this app is in such bad shape. They advertise as the “Fastest Decompiler. 10 times faster than competitors.” In reality, it looks like an abandoned app.
5 dnSpyEx
5.1 Details
- Product: dnSpyEx (continuation of dnSpy)
- Company: OpenSource
- Website: https://github.com/dnSpyEx/dnSpy
- Platforms: Windows
- License: Licensed under GPLv3.
- Note: GitHub: dnSpyEx is an unofficial continuation (fork) of the dnSpy project
5.2 Overview
Here is the basic assembly view:

Here is class AlphaAssembly.A in IL:

Here is class AlphaAssembly.A in C#:
























Join the conversation! Your thoughts help the community grow.