mcpField
I
ilspy-decompile

ilspy-decompile

github.com/aaronontheweb开发1.2k615 次安装今天更新
代码仓库

关于 ilspy-decompile

使用 ILSpy 检查已编译 .NET 程序集的技能,指导开发者定位程序集,并反编译整个文件、指定类型或 IL 代码。

主要功能

  1. 01将程序集反编译到标准输出
  2. 02将结果写入目录
  3. 03反编译指定类型
  4. 04查看 IL 代码
  5. 05定位常见程序集路径

适用场景

  1. 01了解已编译 .NET 库的行为
  2. 02检查程序集中的特定类型
  3. 03查看 IL 输出
  4. 04在 NuGet 或构建目录中查找程序集

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/aaronontheweb/dotnet-skills --skill ilspy-decompile

安装后在 Claude Code 中输入/ilspy-decompile确认已加载。

详细介绍

使用 ILSpy 反编译 .NET 程序集

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

前提条件

  • 已安装 .NET SDK
  • 可通过以下任一方式使用 ILSpy 命令行工具:
    • dnx ilspycmd(如果你的 SDK 或运行时支持)
    • dotnet tool install --global ilspycmd

以下会展示这两种方式。请选择在你的环境中可用的方式。

注意:ILSpyCmd 选项可能会因版本略有不同。
请务必通过 ilspycmd -h 查看支持的标志。

快速入门

# Decompile an assembly to stdout
ilspycmd MyLibrary.dll
# or
dnx ilspycmd MyLibrary.dll

# Decompile to an output folder
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 构建可能会省略代码
  • 优先使用未修剪的构建

法律声明

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

评论

支持 Markdown