icsharpcode/ILSpy

GitHub: icsharpcode/ILSpy

开源、跨平台的 .NET 程序集浏览器与反编译器,将编译后的 .NET 二进制还原为可读的 C# 源码供开发者分析使用。

Stars: 25431 | Forks: 3674

# ILSpy [![NuGet](https://img.shields.io/nuget/v/ICSharpCode.Decompiler.svg)](https://nuget.org/packages/ICSharpCode.Decompiler) ![Build ILSpy](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/bf264345c4234538.svg) [![Mastodon](https://img.shields.io/badge/dynamic/json?label=Mastodon&query=totalItems&url=https%3A%2F%2Fhachyderm.io%2Fusers%2Filspy%2Ffollowers.json&logo=mastodon&style=flat-square)](https://hachyderm.io/@ilspy) [![Bluesky](https://img.shields.io/badge/Bluesky-0285FF?logo=bluesky&logoColor=fff)](https://bsky.app/profile/ilspy.bsky.social) [![ILSpy VS extension](https://img.shields.io/badge/VS%20Extension-ILSpy-blue.svg)](https://visualstudiogallery.msdn.microsoft.com/8ef1d688-f80c-4380-8004-2ec7f814e7de) ILSpy 是开源、跨平台的 .NET assembly 浏览器和反编译器。桌面 UI 运行于 Windows、Linux 和 macOS(基于 [Avalonia](https://avaloniaui.net/) 构建)。 下载:[最新发布版本](https://github.com/icsharpcode/ILSpy/releases) | [最新 CI build (master)](https://github.com/icsharpcode/ILSpy/actions?query=workflow%3A%22Build+ILSpy%22+branch%3Amaster+is%3Asuccess+event%3Apush) | [Microsoft Store (仅限 RTM 版本)](https://apps.microsoft.com/store/detail/ilspy-fresh/XP8C26VDWLP4T4) ## 反编译器前端 除了跨平台的桌面 UI ILSpy(可通过 Releases 下载,另请参阅 [plugins](https://github.com/icsharpcode/ILSpy/wiki/Plugins))之外,还提供以下其他前端: * Visual Studio 2022/2026 默认启用了对 F12 的反编译支持(分别使用我们的 v8.2 和 v9.1 引擎)。 * 我们的 Visual Studio 2022 扩展 [marketplace](https://marketplace.visualstudio.com/items?itemName=SharpDevelopTeam.ILSpy2022)(同样适用于 VS 2026) * 我们的 Visual Studio Code 扩展 [repository](https://github.com/icsharpcode/ilspy-vscode) | [marketplace](https://marketplace.visualstudio.com/items?itemName=icsharpcode.ilspy-vscode) | [open-vsx](https://open-vsx.org/extension/icsharpcode/ilspy-vscode) * 我们适用于 Linux/Mac/Windows 的 dotnet 工具 —— 请查看此仓库中的 [ILSpyCmd](ICSharpCode.ILSpyCmd) | [dotnet tool install](https://www.nuget.org/packages/ilspycmd/) * [C# for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp) 也内置了反编译支持。若要启用,请激活设置 "Enable Decompilation Support"。 * 在 Visual Studio 2019 中,您必须手动启用 F12 支持。转到 Tools / Options / Text Editor / C# / Advanced 并勾选 "Enable navigation to decompiled source" * 我们的 Visual Studio 2017/2019 扩展 [marketplace](https://marketplace.visualstudio.com/items?itemName=SharpDevelopTeam.ILSpy) * 适用于您自己项目的 [ICSharpCode.Decompiler](https://www.nuget.org/packages/ICSharpCode.Decompiler/) NuGet 包 * 本仓库中适用于 Linux/Mac/Windows 的 [PowerShell cmdlets](ICSharpCode.Decompiler.PowerShell) ## 功能特性 * 反编译为 C#(查看[语言支持状态](https://github.com/icsharpcode/ILSpy/issues/829)) * 整个项目反编译 * 搜索类型/方法/属性(了解相关[选项](https://github.com/icsharpcode/ILSpy/wiki/Search-Options)) * 基于超链接的类型/方法/属性导航 * 基类/派生类导航,历史记录 * Assembly metadata 浏览器([功能详解](https://github.com/icsharpcode/ILSpy/wiki/Metadata-Explorer)) * BAML 到 XAML 反编译器 * 支持 .NET Core 的 ReadyToRun 二进制文件(参见[教程](https://github.com/icsharpcode/ILSpy/wiki/ILSpy.ReadyToRun)) * 通过 [plugins](https://github.com/icsharpcode/ILSpy/wiki/Plugins) 进行扩展 * DEBUG build 中的附加功能([面向开发者](https://github.com/icsharpcode/ILSpy/wiki/Additional-Features-in-DEBUG-Builds)) ## 许可证 ILSpy 基于 MIT 许可证分发。详情请参阅 [About](doc/ILSpyAboutPage.txt) 文档, 以及所包含开源库的[第三方声明](doc/third-party-notices.txt)。 ## 如何构建 #### Windows: - 确保已安装 Windows PowerShell(至少版本)5.0 或 [PowerShell](https://github.com/PowerShell/PowerShell) 7+。 - 使用 git 克隆 ILSpy 仓库。 - 执行 `git submodule update --init --recursive` 以下载 ILSpy-Tests submodule(供部分测试用例使用)。 - 安装 Visual Studio(文档版本:18.0/2026)。您需要以下工作负载组件: - 工作负载 ".NET Desktop Development"。此工作负载包含 .NET Framework 4.8 SDK 和 .NET Framework 4.7.2 targeting pack,以及 [.NET 10.0 SDK](https://dotnet.microsoft.com/download/dotnet/10.0)(ILSpy.csproj 目标框架为 .NET 10.0,但我们也有 net472 项目)。我们的单元测试需要 [.NET 11.0 SDK](https://dotnet.microsoft.com/download/dotnet/11.0)。 - 工作负载 "Visual Studio extension development"(注意:ILSpy.VSExtensions.sln 独立于 ILSpy.sln,因此此工作负载是可选的) - 单个组件 "MSVC v143 - VS 2022 C++ x64/x86 build tools"(或类似组件) - _VC++ 工具集是可选的_;如果存在,它将用于 `editbin.exe` 将 ILSpy.exe 使用的堆栈大小从 1MB 修改为 16MB,因为反编译器大量使用递归,较小的堆栈大小会导致在极其复杂的方法中出现问题。 - 在 Visual Studio 中打开 ILSpy.sln。 - NuGet 包还原将自动下载其他依赖项 - 运行项目 "ILSpy" 以启动 ILSpy UI - 使用 Visual Studio 的 "Test Explorer" 查看/运行测试 - 如果您只对 ILSpy 的特定子集感兴趣,您还可以使用 - ILSpy.Desktop.slnf:用于跨平台 Avalonia UI 及其测试 - ILSpy.XPlat.slnf:用于跨平台 CLI (ilspycmd) 或 PowerShell cmdlets - ILSpy.VSExtensions.sln:用于 Visual Studio 扩展 **注意:** Visual Studio 包含一个由 Visual Studio 安装程序管理的 .NET SDK 版本 —— 一旦您更新,它可能也会被升级。 请注意,ILSpy 仅兼容 .NET 11.0 SDK,Visual Studio 将拒绝加载解决方案中的某些项目(并且单元测试会失败)。 如果出现此问题,请从[此处](https://dotnet.microsoft.com/download/dotnet/11.0)手动安装 .NET 11.0 SDK。 #### Unix / Mac: - 确保已安装 [.NET 10.0 SDK](https://dotnet.microsoft.com/download/dotnet/10.0)(用于运行)和 [.NET 11.0 SDK](https://dotnet.microsoft.com/download/dotnet/11.0)(用于测试)。 - 确保已安装 [PowerShell](https://github.com/PowerShell/PowerShell)(以前称为 PowerShell Core) - 使用 git 克隆仓库。 - 执行 `git submodule update --init --recursive` 以下载 ILSpy-Tests submodule(供部分测试用例使用)。 - 使用 `dotnet build ILSpy.Desktop.slnf` 构建跨平台 Avalonia 桌面 UI;使用 `dotnet run --project ILSpy` 运行它。 - 使用 `dotnet build ILSpy.XPlat.slnf` 仅构建 CLI 工具 (ilspycmd) 和 PowerShell cmdlets。 ## 如何贡献 - 报告 bug - 如果您想贡献 pull request,请将 https://github.com/icsharpcode/ILSpy/blob/master/BuildTools/pre-commit 添加到您的 `.git/hooks` 目录中,以防止提交格式错误的代码。我们使用制表符而不是空格。build server 运行相同的脚本,因此任何格式错误的 pull request 都将失败。 当前及以往的[贡献者](https://github.com/icsharpcode/ILSpy/graphs/contributors)。 ## ILSpy 隐私政策 ILSpy 不会收集任何个人身份信息,也不会将用户文件发送给第三方服务。 ILSpy 不使用任何 APM (Application Performance Management) 服务来收集 telemetry 或指标。
标签:Avalonia, SOC Prime, 云资产清单, 反编译器, 多人体追踪, 开发工具, 逆向工程