# dnspyex/dnspy

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/dnspyex-dnspy).**

9,798 stars · 643 forks · C# · gpl-3.0 · fork

## Links

- GitHub: https://github.com/dnSpyEx/dnSpy
- awesome-repositories: https://awesome-repositories.com/repository/dnspyex-dnspy.md

## Topics

`baml` `csharp` `debug` `debugger` `decompile` `decompiler` `dotnet` `dotnetcore` `dotnetframework` `mono` `unity` `vbnet` `xaml`

## Description

dnSpy is a specialized suite of tools for the reverse engineering of .NET assemblies, functioning as a decompiler, assembly editor, and debugger. It translates compiled intermediate language back into high-level source code and provides an execution environment for stepping through compiled binaries to inspect runtime state without the original source files.

The project includes a BAML decompiler that converts binary application markup language into a disassembled format and translates it into extensible markup language for user interface analysis. It also functions as a binary analysis tool that maps raw bytes to decompiled assembly structures.

The platform supports binary patching and metadata table manipulation to modify classes and methods within compiled binaries. Additional capabilities cover assembly member searching, the editing of intermediate language instructions, and the exportation of analyzed assembly data into project formats.

## Tags

### Programming Languages & Runtimes

- [Decompilers](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-interpreter-internals/compiler-infrastructure/intermediate-representations/bytecode/decompilers.md) — Translates Common Intermediate Language bytecode into high-level source code to reconstruct original program logic.
- [Intermediate Language Editors](https://awesome-repositories.com/f/programming-languages-runtimes/intermediate-language-editors.md) — Modifies compiled binaries by rewriting the underlying instruction set using a specialized low-level editor.
- [Reverse Engineering Tools](https://awesome-repositories.com/f/programming-languages-runtimes/reverse-engineering-tools.md) — Analyzing compiled .NET assemblies to understand how a program functions when the original source code is unavailable.

### Part of an Awesome List

- [Dot Net](https://awesome-repositories.com/f/awesome-lists/devtools/dot-net.md) — Utility for modifying classes, methods and metadata within compiled .NET binaries without original source files.
- [Metadata and File Analysis](https://awesome-repositories.com/f/awesome-lists/data/metadata-and-file-analysis.md) — Searching for classes, methods, and strings across binaries to trace function calls and understand program structure.
- [Assembly Manipulation](https://awesome-repositories.com/f/awesome-lists/devtools/assembly-manipulation.md) — Locates specific classes, methods, and strings across assemblies to analyze usage and identify calling functions. ([source](https://github.com/dnSpyEx/dnSpy/blob/master/README.md))
- [Cross-Assembly Indexing](https://awesome-repositories.com/f/awesome-lists/devtools/assembly-manipulation/cross-assembly-indexing.md) — Builds a searchable map of classes and methods to trace function calls across multiple compiled assemblies.
- [Decompilation and Assembly Tools](https://awesome-repositories.com/f/awesome-lists/devtools/decompilation-and-assembly-tools.md) — Community-maintained revival of the assembly editor.

### Development Tools & Productivity

- [Binary Analysis Tools](https://awesome-repositories.com/f/development-tools-productivity/binary-analysis-tools.md) — Includes a low-level inspector for viewing and modifying raw bytes mapped to decompiled assembly structures.
- [Debugging and Inspection Tools](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/debugging-diagnostics/debugging-inspection-tools/debugging-and-inspection-tools.md) — Stepping through the execution of compiled binaries and inspecting runtime state to identify and fix software issues.
- [Runtime Debugging](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/debugging-diagnostics/debugging-inspection-tools/debugging-and-inspection-tools/runtime-debugging.md) — Allows stepping through the execution of compiled assemblies to analyze behavior without needing the original source code. ([source](https://github.com/dnSpyEx/dnSpy#readme))
- [.NET Debuggers](https://awesome-repositories.com/f/development-tools-productivity/net-debuggers.md) — An execution environment for stepping through compiled .NET assemblies to inspect state and analyze runtime behavior.

### Operating Systems & Systems Programming

- [Assembly Metadata Editors](https://awesome-repositories.com/f/operating-systems-systems-programming/assembly-metadata-editors.md) — Directly edits low-level assembly tables to modify classes and methods without recompiling the entire binary.
- [Binary File Inspectors](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-analysis-capabilities/binary-file-inspectors.md) — Correlates raw file offsets with decompiled code elements to allow precise manual edits of binary data.
- [Decompilers](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-analysis-capabilities/decompilers.md) — Converts binary application markup language into a readable disassembled format for easier analysis and debugging. ([source](https://github.com/dnSpyEx/dnSpy/blob/master/README.md))
- [Markup Language](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-analysis-capabilities/decompilers/markup-language.md) — Provides a specialized decompiler to convert binary application markup language (BAML) into a readable XAML format for UI analysis.

### Software Engineering & Architecture

- [Assembly Metadata Modification](https://awesome-repositories.com/f/software-engineering-architecture/assembly-metadata-modification.md) — Modifies classes, methods, and low-level metadata tables using high-level languages or a specialized intermediate language editor. ([source](https://github.com/dnSpyEx/dnSpy/blob/master/README.md))
- [Binary Patching Utilities](https://awesome-repositories.com/f/software-engineering-architecture/binary-patching-utilities.md) — Modifying the behavior of compiled .NET applications by editing assembly metadata and intermediate language instructions.

### Data & Databases

- [Binary Data Analysis](https://awesome-repositories.com/f/data-databases/data-analysis-visualization/analytical-platforms-engines/data-analysis-tools/binary-data-analysis.md) — Allows for the inspection and modification of raw file bytes by mapping binary structures to decompiled representations. ([source](https://github.com/dnSpyEx/dnSpy#readme))
- [Markup Language Parsing](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/data-transformation/data-parsing-extraction/binary-format-parsers/markup-language-parsing.md) — Maps binary application markup language structures to a readable disassembled format for UI analysis.

### User Interface & Experience

- [Binary-to-Markup Translation](https://awesome-repositories.com/f/user-interface-experience/markup-languages/binary-to-markup-translation.md) — Converts binary-serialized markup into extensible markup language for easier inspection and editing.
