An open-source .NET assembly browser and decompiler with support for PDB generation, ReadyToRun, and cross-platform usage.
ILSpy is an open-source .NET assembly browser and decompiler that allows developers to inspect and reverse-engineer compiled .NET code into readable C#. It solves the problem of understanding third-party libraries, debugging opaque assemblies, and learning from existing codebases without access to original source code.
.NET developers, software engineers, and security researchers who need to analyze, debug, or understand compiled .NET assemblies, including those working with legacy code or third-party libraries.
Developers choose ILSpy for its accuracy, extensive feature set (like PDB generation and ReadyToRun support), and seamless integration with Visual Studio and VS Code, all while being completely free and open-source compared to commercial alternatives.
.NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more) - cross-platform!
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Converts .NET assemblies back to readable C# with support for modern features, as detailed in the language support status linked in the README.
Available as a WPF app, Visual Studio extension, VS Code extension, and CLI tool (ilspycmd), making it versatile across different development environments.
Includes tools like metadata explorer and BAML to XAML decompiler for comprehensive inspection of .NET binaries, as highlighted in the features section.
Integrates with Visual Studio for F12 navigation to decompiled sources and has extensions for VS Code, enhancing workflow efficiency out of the box.
Supports a plugin system for custom decompilation scenarios, allowing developers to extend functionality for specific use cases.
Building from source requires specific .NET SDK versions and Visual Studio workloads, as outlined in the detailed build instructions, which can be a barrier for contributors.
The README links to a language support status page, indicating that some advanced C# features might not be fully decompiled yet, limiting accuracy for newer code.
Decompiling very large or complex assemblies can be slow and memory-intensive, a common trade-off due to the recursive nature of the decompiler engine.
While it handles standard .NET code well, ILSpy may struggle with assemblies that use commercial obfuscation techniques, reducing effectiveness in security analysis.