Decompile .NET EXE files back to a C# project.
Drag and drop your .exe file or click to browse.
ILSpy converts CIL bytecode back to C# source code.
Explore the decompiled C# project structure online.
EXE (Executable) is the standard file format for programs on Windows. There are two main categories of EXE files: native executables compiled from languages like C and C++, and managed executables built with .NET languages like C#, VB.NET, and F#.
This tool focuses on .NET executables. Unlike native code that compiles to machine instructions, .NET code compiles to CIL (Common Intermediate Language) — a platform-independent bytecode that runs on the .NET runtime. Because CIL retains rich type information, method signatures, and metadata, it can be decompiled back to high-quality source code.
When a .NET application is built, the compiler (csc for C#, vbc for VB.NET) produces CIL bytecode rather than native machine code. This bytecode is stored in a PE (Portable Executable) file along with extensive metadata including type definitions, method signatures, and assembly references.
The decompiler reads this CIL bytecode and metadata, then reconstructs high-level source code. Modern decompilers like ILSpy can recognize and reconstruct complex language features:
It is important to understand the distinction between .NET and native executables:
If you upload a native EXE, the decompilation will fail or produce no output because ILSpy cannot find .NET metadata in the file.
Many commercial .NET applications use obfuscators (like Dotfuscator, ConfuserEx, or SmartAssembly) to make decompilation harder. Common obfuscation techniques include renaming identifiers to meaningless characters, encrypting string literals, injecting anti-tamper checks, and adding control flow obfuscation.
Even with obfuscation, the underlying CIL bytecode must remain valid for the .NET runtime to execute it. This means the code structure is always recoverable — just harder to read. The decompiler will produce valid but obfuscated-looking source code.
This tool decompiles .NET executables (built with C#, VB.NET, or F#). Native Win32 executables compiled from C or C++ cannot be decompiled to high-level source code — they can only be disassembled to assembly language.
This tool uses ILSpy, a widely trusted open-source .NET decompiler. ILSpy reads CIL bytecode from .NET assemblies and reconstructs high-level C# source code with proper type inference and language feature detection.
Most .NET executables are relatively small and require the .NET Framework or .NET runtime. You can check by looking for the .NET metadata header, or simply upload it — if it is a .NET assembly, it will be decompiled successfully.
Obfuscated .NET assemblies can still be decompiled, but the output will have renamed identifiers, string encryption, and control flow obfuscation. The structure and logic are still recoverable.