Token导航 LogoToken导航

MCP Server · 开发工具

Dn Spy MCP

dnSpy-MCP是一个基于ICSharpCode.Decompiler的静态.NET程序集分析工具,提供反编译、IL反汇编、元数据检查和保护分析功能,通过MCP协议暴露为工具,且不执行目标程序集。

未说明官方级别未说明来源级核验工具 23
静态分析C#ClaudeClaude DesktopCursor

快速开始

公开资料没有提供安装命令,按仓库或官方文档接入。
作者 / 组织
notgate
提供方
notgate

工具数量

23

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

11

仓库热度

收录来源

1 个

MCP World

选型结论

Dn Spy MCP 属于开发工具类 MCP Server,公开资料标注 23 个工具,通过传输方式未标注接入,适配 Claude Desktop、Claude、Cursor,没有现成的安装命令;接入前要先准备 访问 Token。

分类

开发工具

传输方式

未说明

认证方式

访问 Token

部署方式

公开资料未说明

安装与配置

公开目录没有给出安装命令,需要按仓库 README安装;下面按同类条目的通用流程说明。

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    先确认运行方式

    公开资料没有标注传输方式,先看仓库 README,确认是本地进程还是远程地址。

  2. 2

    获取服务

    公开目录没有给出安装命令,按仓库 README里的步骤安装或获取服务。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 23 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

公开资料仍需确认:安装命令

详细介绍

dnSpy MCP

用于静态的模型上下文协议服务器。NET程序集分析,由ICSharpCode提供支持。解压器(dnSpyEx引擎)。通过stdio将反编译、IL反汇编、元数据检查和保护分析作为MCP工具公开。从不执行目标程序集。

需求

  • .NET 8 SDK或更高版本
  • 兼容的MCP客户端(Claude Desktop、Cursor或任何支持MCP stdio传输的客户端)

安装

git clone https://github.com/ZeraTS/dnSpy-MCP.git
cd dnSpy-MCP
dotnet build src/DnSpyMcp/DnSpyMcp.csproj -c Release

Claude桌面配置

增添 claude_desktop_config.json:

{
  "mcpServers": {
    "dnspy-mcp": {
      "command": "dotnet",
      "args": ["/path/to/src/DnSpyMcp/bin/Release/net8.0/DnSpyMcp.dll"]
    }
  }
}

工具

工具说明关键参数
get_pe_info获取PE/COFF头信息、程序集元数据和目标框架assemblyPath
get_resources列出程序集中嵌入的所有清单资源assemblyPath
resolve_token解析元数据令牌(十六进制,例如。 0x02000001)对其定义assemblyPath, tokenHex
list_pinvokes列出程序集中的所有P/Invoke(DllImport)声明assemblyPath
find_attributes查找用特定属性装饰的所有类型和方法assemblyPath, attributeName
get_methods_for_type获取特定类型上定义的所有方法assemblyPath, typeName
decompile_assembly将整个程序集解压缩为C#源代码assemblyPath
decompile_type将特定类型解压缩为C#源代码assemblyPath, typeName
decompile_method将特定方法分解为C#源代码assemblyPath, typeName, methodName
dump_il倾倒IL(CIL)拆卸整个组件、类型或特定方法assemblyPath, typeName?, methodName?
inspect_type检查类型的结构:字段、方法、属性、接口,可选地使用源代码assemblyPath, typeName, includeSource?
inspect_method检查特定方法:签名、参数、反编译源代码,可选ILassemblyPath, typeName, methodName, includeSource?, includeIL?
list_types列出程序集中的所有类型定义assemblyPath
find_methods在程序集中查找方法,可选择按名称模式筛选assemblyPath, pattern?
search_strings在程序集的反编译源代码中搜索字符串文字assemblyPath, pattern, useRegex?
search_members按名称模式搜索类型、方法、字段和属性assemblyPath, pattern
set_breakpoint在特定IL偏移处的方法上设置虚拟断点assemblyPath, typeName, methodName, ilOffset
list_breakpoints列出所有活动虚拟断点
inspect_breakpoint在断点偏移处显示IL,推断堆栈类型,并找到该方法的所有调用者id
clear_breakpoints删除所有虚拟断点或按id删除特定断点id?
detect_anti_debug静态分析,检测7个类别的反调试技术assemblyPath
detect_anti_tamper用于检测混淆和防篡改保护的静态分析assemblyPath
get_protection_report将防调试和防篡改分析汇总到一份报告中,其中包含风险评分(0-10)和绕过建议assemblyPath

保护分析

detect_anti_debug, detect_anti_tamper,以及 get_protection_report 仅执行静态分析。目标程序集从不作为加载。NET类型,从不JIT编译,也从不执行。分析使用ICSharpCode。仅提供反编译器的类型系统和PE阅读器。

反调试检测类别

  • 针对已知反调试API(IsDebuggerPresent、NtQueryInformationProcess等)的P/Invoke声明
  • 托管API使用情况(System.Diagnostics.Debugger.IsAttached等)
  • 基于时间的检查(秒表、GetTickCount、QueryPerformanceCounter模式)
  • 线程隐藏(带ThreadHideFromDebugger的NtSetInformationThread)
  • TLS回调存在(在主入口点之前执行)
  • 硬件断点检测(CONTEXT Dr0-Dr3读取)
  • 基于异常的反调试模式

防篡改检测类别

  • 模糊器指纹识别(ConfusedEx、Dotfuscator、Eazfuscator、.NET Reactor、SmartAssembly、KoiVM等10+)
  • 名称混淆启发式(控制字符、零宽度字符、饱和度)
  • 字符串加密存根(cctor数组初始化模式,int到字符串解密方法签名)
  • 控制流混淆(切换代理,高goto密度)
  • 完整性检查(自哈希、自身程序集上的File.ReadAllBytes、哈希比较后的终止)
  • VM/虚拟化(大型交换机调度程序、加密IL存根)
  • 包装(PE部分名称:UPX、MPRESS、.vmp0、Themida等)

风险评分

get_protection_report 计算风险评分(0-10):

  • 高严重性/置信度发现:+1.5分
  • 中等:+0.75分
  • 低点:+0.25点
  • 上限为10

项目结构

src/DnSpyMcp/
├── Program.cs
├── Core/
│   ├── AssemblyCache.cs        Thread-safe decompiler cache (keyed by path + mtime)
│   └── BreakpointRegistry.cs  In-memory virtual breakpoint store
├── Models/
│   └── Results.cs              All result record types
└── Tools/
    ├── Analysis/
    │   ├── AnalysisTools.cs    PE info, resources, token resolution, P/Invokes, attributes
    │   ├── BreakpointTools.cs  Virtual breakpoints: set, list, inspect, clear
    │   ├── DecompileTools.cs   C# decompilation, IL disassembly
    │   ├── InspectTools.cs     Type and method inspection
    │   └── SearchTools.cs      Type/method/member/string search
    └── Security/
        ├── AntiDebugTools.cs         Anti-debug pattern detection
        ├── AntiTamperTools.cs        Obfuscation and anti-tamper detection
        └── ProtectionReportTools.cs  Aggregated protection report

已知问题

Analysis of heavily obfuscated assemblies may produce false positives in name obfuscation heuristics

名称混淆检测器用单字母名称或编译器生成的名称(包含 ``).标准。NET编译器生成的类型(lambda闭包、异步状态机)将导致混淆名称比率。阈值设置为30%以减少噪声,但大量使用泛型或LINQ的程序集仍可能触发它。

String encryption detection requires obfuscated method names

字符串解密方法检测器仅在方法名称本身被混淆(包含控制字符或是单个字母)时才会触发。如果保护程序为其字符串解密例程使用可读的方法名,则此检查将无法检测到它们。cctor数组初始化模式不受影响。

Assembly resolver errors on assemblies with missing dependencies

ICSharpCode。反编译器尝试从与目标相同的目录中解析引用的程序集。如果缺少依赖项,受影响方法的反编译将退回到部分输出或跳过。PE级操作(get_pe_info, get_resources, resolve_token, list_pinvokes)不受影响。 ThrowOnAssemblyResolveErrors 默认设置为false以抑制解析器错误。

P/Invoke entry point detection is limited to DllImportAttribute

这 list_pinvokes 防调试P/Invoke扫描程序仅检测用 [DllImport].使用动态P/Invoke模式 NativeLibrary.Load + GetExport, GetProcAddress 通过 Marshal,或手动构建的委托函数指针将不会被检测到。

学分

轻松检测(DIE)

保护检测逻辑 Tools/Security/ 直接从所使用的检测方法中提取 轻松检测 由霍西克。

DIE的核心见解——保护器指纹识别应该对原始二进制字节模式、PE段元数据和元数据字符串堆搜索进行操作,而不是对源代码进行反编译——是该项目亚毫秒检测性能的基础。几个混淆器签名(ConfusedEx、Eazuscator、KoiVM、.NET Reactor、VMProtect、Dotfuscator、MPRESS、Themida等)是从DIE的PE签名脚本改编而来的 db/PE/.DIE由horsicq和贡献者维护,并在MIT许可下可用。

反调试研究

反调试检测类别和API覆盖范围由以下内容通知:

工具与能力

工具数量

23

资源数量

0

提示词数量

0

能力标签

静态分析C#本地部署反编译元数据检查保护分析开发工具

支持客户端

Claude DesktopClaudeCursor

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

让助手直接读代码

把仓库、提交记录和 issue 交给模型检索,补全和重构时不用来回复制文件。

在对话里跑命令

触发构建、测试和脚本,执行结果直接回到上下文,省去切终端。

接进开发流程

把 PR、CI 状态和代码审查接进助手,减少在几个工具之间跳。

选择建议

值得选的地方

  • 工具数量 23 个,一次接入能覆盖的操作比单点工具更全。
  • 已经适配 Claude Desktop、Claude、Cursor,换客户端不用重新研究配置。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 需要自备访问 Token,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在开发工具场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 愿意照着官方文档一步步配环境的人。

不太适合

  • 暂时拿不到访问 Token的人。
  • 希望一条命令就装好、不想看文档的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Dn Spy MCP

MCP World · 本页

23未说明未标注1 个2026-05-17
Git 838e2ec1

MCP World

12stdio有2 个2026-05-17
Markitdown MCP 2c653a5f

MCP World

1stdio有1 个2026-05-17
Context7 MCP C671e75a

MCP World

0stdio有1 个2026-05-17
Context7 831acf40

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Dn Spy MCP 怎么安装?

公开目录没有给出可以直接复制的安装命令,需要按仓库 README里的步骤安装;装好后写进客户端的 MCP 配置再重启。

Dn Spy MCP 怎么在 Claude Desktop、Cursor 里配置?

它是传输方式未标注,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Dn Spy MCP 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Dn Spy MCP 需要 API Key 吗?

公开资料标注的认证方式是访问 Token,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Dn Spy MCP 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude、Cursor;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP