Introduction
dnSpy is a .NET debugger and assembly editor that provides a full-featured IDE experience for analyzing, editing, and debugging .NET assemblies without needing the original source code. It is widely used in security research, malware analysis, and game modding.
What dnSpy Does
- Decompiles .NET assemblies to C#, Visual Basic, or IL
- Provides an integrated debugger for .NET Framework and .NET Core apps
- Allows in-place editing of IL code, metadata, and resources
- Supports searching across loaded assemblies by type, method, or string
- Handles Unity game assemblies and mono-based applications
Architecture Overview
dnSpy builds on the ILSpy decompiler engine and Roslyn for C# editing, wrapping them in a VS-like shell with a custom debugger that attaches to CLR runtimes. The editor modifies assemblies in-memory using dnlib, a low-level .NET metadata library, and writes changes back to disk without requiring recompilation.
Self-Hosting & Configuration
- Download pre-built binaries from GitHub Releases (no installer needed)
- Runs on Windows; requires .NET Framework 4.7.2+ for the host app
- Supports debugging both .NET Framework and .NET Core/.NET 5+ apps
- Themes, fonts, and decompiler settings are configurable via the Options menu
- Note: the project is archived; community forks continue development
Key Features
- Full C# decompilation with syntax highlighting and navigation
- Integrated debugger with breakpoints, watch windows, and call stacks
- Assembly editing: modify IL, add/remove members, change metadata
- Hex editor for raw binary inspection within the same UI
- Plugin architecture for extending functionality
Comparison with Similar Tools
- ILSpy — read-only decompiler; dnSpy adds debugging and editing
- dotPeek — JetBrains decompiler with symbol server but no editing
- JustDecompile — Telerik decompiler, now discontinued
- de4dot — .NET deobfuscator that complements dnSpy for obfuscated assemblies
- Rider / Visual Studio — full IDEs that require source code; dnSpy works directly on binaries
FAQ
Q: Is dnSpy still maintained? A: The original repository is archived, but active community forks such as dnSpyEx continue development with new features and bug fixes.
Q: Can I use dnSpy on Linux or macOS? A: dnSpy is Windows-only. For cross-platform .NET decompilation, ILSpy offers an Avalonia-based UI that runs on Linux and macOS.
Q: Does dnSpy handle obfuscated assemblies? A: It decompiles them as-is. For better results, run a deobfuscator like de4dot first, then open the cleaned assembly in dnSpy.
Q: Can I save edited assemblies? A: Yes. After editing IL or metadata, use File > Save Module to write the modified assembly to disk.