# icsharpcode/ilspy

**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/icsharpcode-ilspy).**

25,447 stars · 3,676 forks · C# · MIT

## Links

- GitHub: https://github.com/icsharpcode/ILSpy
- awesome-repositories: https://awesome-repositories.com/repository/icsharpcode-ilspy.md

## Description

ILSpy is a .NET decompiler and binary analyzer designed to convert compiled .NET assemblies back into readable C# source code. It functions as a metadata explorer and a common intermediate language viewer, enabling the analysis of compiled code and the execution of reverse engineering workflows.

The project distinguishes itself through specialized translation capabilities, such as converting compiled binary XML (BAML) back into human-readable XAML for user interface analysis. It also provides tools for inspecting native machine code and extracting metadata from program database (PDB) files.

The toolset covers a broad range of static analysis capabilities, including project-wide decompilation, code hierarchy navigation, and the visualization of control-flow graphs. It further supports binary inspection via typed intermediate language analysis, assembly content searching, and a managed plugin framework for extending core functionality.

## Tags

### Development Tools & Productivity

- [.NET Decompilers](https://awesome-repositories.com/f/development-tools-productivity/net-decompilers.md) — Converts compiled .NET assemblies back into readable high-level C# source code.
- [Compiled Code Analysis](https://awesome-repositories.com/f/development-tools-productivity/compiled-code-analysis.md) — Allows for the examination of intermediate language and native machine code to debug or audit software.
- [.NET Metadata Explorers](https://awesome-repositories.com/f/development-tools-productivity/net-metadata-explorers.md) — Provides a specialized explorer for examining internal structural tables and metadata entities of compiled binaries.
- [Binary Analysis Tools](https://awesome-repositories.com/f/development-tools-productivity/binary-analysis-tools.md) — Enables the inspection of native code and PDB metadata across different operating systems.
- [Decompilation Transformation Tracing](https://awesome-repositories.com/f/development-tools-productivity/code-quality-analysis/static-analysis-engines/static-analysis-tools/code-analysis-and-transformation/decompilers/decompilation-transformation-tracing.md) — Views the intermediate state of code at each single transformation step during the conversion from binary to source. ([source](https://github.com/icsharpcode/ILSpy/wiki/Additional-Features-in-DEBUG-Builds))

### Programming Languages & Runtimes

- [.NET Binary Decompilers](https://awesome-repositories.com/f/programming-languages-runtimes/net-binary-decompilers.md) — dnSpy converts compiled binaries back into readable C# source code, including support for pre-compiled binaries. ([source](https://github.com/icsharpcode/ilspy#readme))
- [Multi-Pass Compiler Pipelines](https://awesome-repositories.com/f/programming-languages-runtimes/multi-pass-compiler-pipelines.md) — Converts binary bytecode to high-level source code through a sequence of discrete, traceable refactoring passes.
- [Typed Intermediate Language Analysis](https://awesome-repositories.com/f/programming-languages-runtimes/typed-intermediate-language-analysis.md) — Annotates intermediate language instructions by tracking the types of values on the evaluation stack.
- [Code Hierarchy Navigation](https://awesome-repositories.com/f/programming-languages-runtimes/class-method-definitions/class-hierarchies/code-hierarchy-navigation.md) — Traverses types, methods, and class inheritances using hyperlinks and history tracking to map software architecture. ([source](https://github.com/icsharpcode/ilspy#readme))

### Part of an Awesome List

- [Metadata Analysis Tools](https://awesome-repositories.com/f/awesome-lists/devtools/binary-analysis/metadata-analysis-tools.md) — Converts raw metadata entries into readable source code to understand the underlying structure of compiled elements. ([source](https://github.com/icsharpcode/ILSpy/wiki/Metadata-Explorer))
- [Reverse Engineering Tools](https://awesome-repositories.com/f/awesome-lists/devtools/reverse-engineering-tools.md) — Browses and decompiles .NET assemblies.

### Operating Systems & Systems Programming

- [Assembly Metadata Inspection](https://awesome-repositories.com/f/operating-systems-systems-programming/assembly-metadata-editors/assembly-metadata-inspection.md) — Explores internal tables and structural definitions of .NET binaries to understand composition and dependencies. ([source](https://github.com/icsharpcode/ilspy#readme))
- [Binary-to-Source Mappings](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-analysis-capabilities/decompilers/binary-to-source-mappings.md) — Pairs raw intermediate language instructions with corresponding decompiled C# statements for side-by-side comparison.
- [Metadata Entity Mapping](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-analysis-capabilities/decompilers/binary-to-source-mappings/metadata-entity-mapping.md) — Maps raw binary table tokens to high-level objects to allow bidirectional navigation between source and metadata.
- [Common Intermediate Language Viewers](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-analysis-capabilities/hex-editors/common-intermediate-language-viewers.md) — Displays intermediate language with type information for each evaluation stack slot to analyze instructions. ([source](https://github.com/icsharpcode/ILSpy/wiki/Additional-Features-in-DEBUG-Builds))
- [Reverse Engineering Tools](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-analysis-capabilities/reverse-engineering-tools.md) — Analyzes the internal structure and metadata of binary files to uncover software functionality.
- [Binary Metadata Inspection](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-metadata-inspection.md) — Analyzes the raw internal tables of a binary image to examine the structural composition of the file. ([source](https://github.com/icsharpcode/ILSpy/wiki/Metadata-Explorer))
- [Assembly Metadata Search](https://awesome-repositories.com/f/operating-systems-systems-programming/assembly-metadata-editors/assembly-metadata-search.md) — Locates specific types, members, or resources within binaries using text strings and regular expressions. ([source](https://github.com/icsharpcode/ILSpy/wiki/Search-Options))
- [Native Code Inspection](https://awesome-repositories.com/f/operating-systems-systems-programming/native-code-inspection.md) — Analyzes native machine code within binaries to reveal the underlying implementation of compiled assemblies. ([source](https://github.com/icsharpcode/ILSpy/wiki/ILSpy.ReadyToRun))

### Business & Productivity Software

- [Embedded Reference Loading](https://awesome-repositories.com/f/business-productivity-software/assembly-management-systems/embedded-reference-loading.md) — Resolves and loads assembly dependencies that are stored within the resources of another assembly. ([source](https://github.com/icsharpcode/ILSpy/wiki/Plugins))

### Data & Databases

- [Compiled Code Indexing](https://awesome-repositories.com/f/data-databases/search-indexing/compiled-code-indexing.md) — Finds specific types, methods, or properties within assemblies using searchable indexes for rapid discovery. ([source](https://github.com/icsharpcode/ilspy#readme))

### Software Engineering & Architecture

- [Control-Flow Graph Visualization](https://awesome-repositories.com/f/software-engineering-architecture/control-flow-graph-visualization.md) — Generates a graph of block containers to map the logical execution paths of a specific function. ([source](https://github.com/icsharpcode/ILSpy/wiki/Additional-Features-in-DEBUG-Builds))
- [Control-Flow Graph Generation](https://awesome-repositories.com/f/software-engineering-architecture/control-flow-logic-models/control-flow-graph-generation.md) — Decomposes method bodies into basic blocks and edges to visualize the logical execution paths of a function.
- [Embedded](https://awesome-repositories.com/f/software-engineering-architecture/cross-platform-development/multiplatform-code-sharing/dependency-resolution/embedded.md) — Recursively loads assembly dependencies discovered within the embedded resource streams of a binary.
- [Metadata Entity Navigation](https://awesome-repositories.com/f/software-engineering-architecture/metadata-attachments/metadata-entity-navigation.md) — Allows jumping between high-level code views and specific low-level tokens to correlate source logic with binary entities. ([source](https://github.com/icsharpcode/ILSpy/wiki/Metadata-Explorer))
- [Decompiled Project Reconstructions](https://awesome-repositories.com/f/software-engineering-architecture/source-file-organization/source-export-utilities/decompiled-project-reconstructions.md) — Processes all assemblies within a project simultaneously to reconstruct the full source code structure. ([source](https://github.com/icsharpcode/ilspy#readme))

### User Interface & Experience

- [Binary-to-Markup Translation](https://awesome-repositories.com/f/user-interface-experience/markup-languages/binary-to-markup-translation.md) — Provides translation of compiled binary XML (BAML) back into human-readable XAML markup for UI analysis.
- [Plugin Frameworks](https://awesome-repositories.com/f/user-interface-experience/plugin-frameworks.md) — Implements a managed extensibility framework that allows loading external assemblies to add new features. ([source](https://github.com/icsharpcode/ILSpy/wiki/Plugins))
