ILSpy反编译工具 ilspy-decompile

ILSpy反编译技能是一个用于深入分析.NET程序集的强大工具。它能够将已编译的DLL文件反编译为可读的C#或IL代码,帮助开发者理解第三方库、框架API的内部实现机制,检查NuGet包的源代码,或对已编译的二进制文件进行逆向工程分析。核心功能包括:程序集反编译、类型查看、源代码导出、IL代码分析。适用于.NET开发调试、代码审计、学习研究和逆向工程等场景。

逆向工程 0 次安装 0 次浏览 更新于 2/26/2026

name: ilspy-decompile description: 通过反编译程序集来理解.NET代码的实现细节。当您想了解.NET API内部工作原理、检查NuGet包源代码、查看框架实现或理解已编译的.NET二进制文件时使用。 allowed-tools: Bash(dnx:*)

使用ILSpy进行.NET程序集反编译

使用此技能通过反编译已编译的程序集来理解.NET代码的内部工作原理。

先决条件

  • 已安装.NET SDK
  • ILSpy命令行工具可通过以下方式之一获得:
    • dnx ilspycmd(如果您的SDK或运行时中可用)
    • dotnet tool install --global ilspycmd

两种形式如下所示。请使用在您环境中可用的那一种。

注意:ILSpyCmd的选项可能因版本略有不同。 始终使用ilspycmd -h验证支持的标志。

快速开始

# 将程序集反编译到标准输出
ilspycmd MyLibrary.dll
# 或
dnx ilspycmd MyLibrary.dll

# 反编译到输出文件夹
ilspycmd -o output-folder MyLibrary.dll

常见.NET程序集位置

NuGet包

~/.nuget/packages/<package-name>/<version>/lib/<tfm>/

.NET运行时库

dotnet --list-runtimes

.NET SDK引用程序集

dotnet --list-sdks

引用程序集不包含实现。

项目构建输出

./bin/Debug/net8.0/<AssemblyName>.dll
./bin/Release/net8.0/publish/<AssemblyName>.dll

核心工作流程

  1. 确定您想理解的内容
  2. 定位程序集
  3. 列出类型
  4. 反编译目标

命令

基本反编译

ilspycmd MyLibrary.dll
ilspycmd -o ./decompiled MyLibrary.dll
ilspycmd -p -o ./project MyLibrary.dll

定向反编译

ilspycmd -t Namespace.ClassName MyLibrary.dll
ilspycmd -lv CSharp12_0 MyLibrary.dll

查看IL代码

ilspycmd -il MyLibrary.dll

关于现代.NET构建的注意事项

  • ReadyToRun映像可能会降低可读性
  • 裁剪或AOT构建可能会省略代码
  • 建议使用非裁剪构建

法律声明

反编译程序集可能受许可证限制。