Heretek-RE/re-dotnet-patch

GitHub: Heretek-RE/re-dotnet-patch

面向 Mono/.NET 程序集的结构化修补 MCP 服务器,提供方法体 NOP、IL 替换、ldstr 字符串替换等能力,当前处于接口已定义、后端待实现的骨架阶段。

Stars: 0 | Forks: 0

# re-dotnet-patch 用于对 Mono / .NET 程序集进行结构化修补的 MCP 服务器。 ## 状态 **v2.8.0 — SKELETON.** 工具契约已最终确定并由测试固定 (`tests/test_re_dotnet_patch.py`)。实际的往返修补器 后端 (dnlib / Mono.Cecil / pythonnet) 将在 v2.8.1 中推出。 目前,每个变更工具都会返回一个结构化的 `{status: "not_implemented", reason, remediation, schema_for_replay"}` dict,因此: 1. 下游技能现在就可以针对这些工具名称进行开发。 2. 调用者可以将操作序列化为 patch descriptor,以便在 v2.8.1 推出后 稍后重放。 3. 尽管后端被推迟,v2.8.0 的 CHANGELOG 条目依然可以 为这个新服务器进行宣传。 ## 工具 | 工具 | 状态 | 功能描述 | |---|---|---| | `check_dnlib` | WARN (stub) | 探测未来的后端 | | `nop_method` | not_implemented | 用 NOP-sled 替换方法体 (返回默认值) | | `replace_method_body` | not_implemented | 用调用者提供的 IL bytes 替换方法体 | | `replace_string_ldstr` | not_implemented | 替换方法体内的特定 `ldstr` operand | | `patch_assembly` | not_implemented | 原子化地应用一系列操作 | | `rollback_patch` | delegate | 委托给 `re-patch.restore_original` | ## 为什么需要一个新的服务器(而不是 re-patch 中的辅助工具)? `re-patch` 仅支持字节拼接,纯粹使用标准库 + mcp/pydantic。添加 沉重的 dnlib / Mono.Cecil 依赖会使 re-patch 的表面积膨胀,给 只需要字节拼接的调用者带来负担。根据 v2.8.0 计划 (于 2026-06-07 批准,LO 决策),Mono dnlib 修补器将作为 一个新服务器发布,以保持依赖边界清晰。这需要在 `.mcp.json` 中增加 1 个服务器数量条目 (30 → 31)。 ## 该服务器目前不做的事情 - 目前它不会 NOP 方法体。v2.8.1 将支持此功能。对于 v2.8.0, 请使用 `re-dotnet.decompile_type` 反编译程序集,手动编辑 C# 源码以 stub 目标方法,然后重新编译。 - 它不会触及原生 / 非 .NET 二进制文件。请使用 `re-patch` 进行 字节拼接;使用 `re-vm-reverse` 处理受 VM 保护的原生代码。 - 它不会恢复原文件 —— 请直接调用 `re-patch.restore_original`。 `rollback_patch` 工具根据文档进行委托。 ## 关闭 CD-3 r03-stress 运行已识别出 `MonoLauncher::PASystemInfoScanner.MainWindow` 为 Mono Steam-gate 目标(参见 `See the RE-AI output directory.` 获取完整的反编译内容)。一旦 v2.8.1 引入了 dnlib 后端, `nop_method("PASystemInfoScanner.MainWindow::GetSteamRegistryKey")` 将作为 HIGH 置信度的 patch 关闭 CD-3(目前仅为 DOC-ONLY)。 ## License MIT。
标签:DNS 反向解析, MCP, 二进制分析, 云安全运维, 云资产清单, 程序集修补, 逆向工具, 逆向工程