dsh-rea
v1.2.0
Published
Registers the upstream REA (Reverse Engineer Anything) MCP server into DeepSeek Harness as mcp__rea__* tools — a third-party adapter, analysis is upstream's. · 把上游 REA 的 MCP 服务接入 DeepSeek Harness,提供 mcp__rea__* 工具(第三方适配,分析能力属上游)。
Downloads
586
Maintainers
Readme
dsh-rea
把上游 REA — Reverse Engineer Anything 的 MCP 服务接入
DeepSeek Harness(dsh),其工具在会话中以 mcp__rea__* 的形式出现。
这是什么
一个小型 DSH bundle。它只有一行 rea:挂载官方 MCP 客户端插件(@deepseek-ai/dsh-mcp-client),
连接本机已安装的 rea --mcp stdio server;并在侧边栏插件页面提供一个页面,包含环境检查、
示例提问和设置。本包不含任何分析代码。
第三方适配器。 本仓库不属于 REA,不分发任何 REA 代码,也非 REA 作者维护。它负责连接 REA 并提供设置页面。 上游:github.com/morluto/rea(MIT)· 文档 · rea.tools · npm 包
rea-agents。 REA 自身的问题去它的 tracker;本插件的问题去 本仓库 issues。
它提供: 注册 mcp__rea__* 工具并自动选择跨平台启动方式;在插件页面告诉你还缺什么、怎么修复。
能做什么 / 不能做什么
分析能力属于上游;本节仅复述上游自身的约定,以设定期望。
- 无法恢复完整源码。 对原生二进制上游返回伪代码和汇编,Android APK 返回反编译方法, JEB 返回伪代码,JavaScript/Electron 返回模块及其关系。上游工具约定声明伪代码"是反编译器 输出,非原始源码,且与其他提供商的输出非文本等价"。
- 实际不可恢复:原始标识符名、类型、注释、宏和模板展开、构建脚本和资源。优化(内联、重排)、 符号剥离、混淆、加壳和虚拟机保护只会让输出更差。
- 每个结果都带有置信度和限制说明(
observed/derived/inferred,加显式限制列表)。 将它们视为证据,永远不要当作恢复的源码。 - 适用场景:理解行为、定位实现、互操作和兼容性重实现、安全审查、迁移参考。要获取实际源码, 请走合法途径——上游仓库、厂商授权或厂商自有 SDK。
跨平台自动检测
shipped patch 使用 !!js 表达式在运行时选择正确的命令形式:
- Windows:
cmd.exe /c rea --mcp— npm shim 是.cmd文件,需要 shell。 - macOS / Linux:
rea --mcp— npm shim 是 PATH 上的直接可执行文件。
跨平台无需手动编辑。--mcp 标志是 rea --help 中文档标注的 stdio server 启动方式。
验证环境
| 组件 | 版本 |
|---|---|
| REA (rea-agents) | 6.5.0(需要 6.3.0 或更高) |
| DeepSeek Harness | 0.2.1-alpha.5(npm CLI) |
| @deepseek-ai/dsh-mcp-client | 0.2.1-alpha.5,harness 自带 |
| Node.js | 22.19+ / 24.11+ / 26+(REA 引擎要求) |
shipped row 已实测:rea --mcp 响应了 MCP initialize 握手并返回
serverInfo: { name: "rea", version: "6.5.0" } 及 207 个工具。其输入 schema 中的全部 pattern
(600 个,去重后 45 个)都能被 Rust regex 引擎编译——DeepSeek 原生模型等严格接口做的就是这项校验。
安装
前置条件
- REA 接受的 Node.js 版本(
^22.19.0 || ^24.11.0 || >=26.0.0)。 - 全局安装 REA CLI,需要 6.3.0 或更高版本:
npm i -g rea-agents@latest。 更早的版本在工具 schema 里使用了\0正则转义,DeepSeek 原生模型不接受,REA 连接期间每一轮 都会失败(见常见问题)。 - 原生分析需要 Ghidra 12.1.x(Hopper / IDA 为替代方案,需各自授权)。 静态 JavaScript/Electron 和 .NET 分析无需引擎。
插件
dsh plugin --profile <profile> add dsh-rea也可以在 DSH Web 侧边栏的插件页面安装 dsh-rea。
设置与配置——在插件页面完成
打开 DSH Web 侧边栏的插件,选择 REA 逆向分析。页面分三部分:
- 环境检查——REA 命令行工具及版本(需 6.3.0+)、
mcp__rea__*工具是否已加载、Ghidra(可选)、 Java(Ghidra 需要)。需要处理的项会说明原因并给出修复命令,可一键复制;点重新检查再检测一次。 - 试一试——可以直接贴进对话的示例提问。
- 设置——保存到你的 profile,REA 会立即用新设置重启:
| 设置 | 默认值 | 说明 |
|---|---|---|
| Ghidra 安装目录(ghidraInstallDir) | 空 | 作为 GHIDRA_INSTALL_DIR 传给 REA;留空则沿用环境变量。 |
| 单次工具调用超时(toolCallTimeoutMs) | 300000 | 反编译大型程序可能需要几分钟。 |
没有 Ghidra 时,JavaScript / Electron 和 .NET 分析照常可用;原生程序(exe / ELF / Mach-O)需要 Ghidra 12.1.x 和 JDK 21+。
也可以在 profile 的 cordis.patch.yml 里手动固定设置:
- id: rea
config:
ghidraInstallDir: /Applications/ghidra_12.1.1_PUBLIC验证
环境检查里 REA 命令行工具和工具加载两项显示为绿色。然后在对话里试一句,例如
"用 REA 分析 /Applications/Visual Studio Code.app 这个 Electron 应用"。配置了 Ghidra 后,
binary_session 会报告引擎检查(configuration / installation / headless /
native_decompiler / java),应全部 ok: true。
范围和注意事项
REA 6.5.0 暴露 207 个工具,每个会话的工具列表会明显变长(不需要时可在插件页面禁用本 bundle);该行设置
failOnStartupError: false,这样 REA 缺失不会阻止 harness 启动。部分 REA 工具会启动进程、
写文件和访问网络——DSH 的权限策略会介入。只分析你有权检查的制品。
更新 — 两件独立的事,都是手动
- 本插件不会自我更新:
dsh plugin --profile <profile> add dsh-rea@latest(或在插件页面更新)。 下面更新 REA 不会更新本插件,更新本插件也不会碰 REA。 - 上游 REA:
npm i -g rea-agents@latest,然后重启 harness,让 MCP 子进程用新版本重新启动。 其bin(scripts/rea.mjs)跨版本稳定,此处无需改动。 - Ghidra 由 REA 版本门控(当前 12.1.x):先更新 REA,再检查它是否接受更新的 Ghidra。
- DeepSeek Harness:harness 升级可能改变 MCP client 的 config schema——用
Config.listConfigs name=@deepseek-ai/dsh-mcp-client检查该行并调整字段名。
常见问题
Invalid schema for function 'mcp__rea__capture_process_scenario': "^[^=\\0]+$" is not a "regex"
(或任何 mcp__rea__* 的 schema 报错)——已安装的 REA 低于 6.3.0。它的 schema 使用了 DeepSeek
原生模型不接受的正则写法,接口会拒绝整个请求。上游已在
morluto/rea#1329 修复:
npm i -g rea-agents@latest
rea --version # 6.3.0 或更高然后重启 harness。
看不到 mcp__rea__* 工具——harness 的 PATH 里找不到 rea(which rea),或 REA 启动失败;
该行设置了 failOnStartupError: false,harness 会继续运行并记录错误。
启动时本 bundle 被跳过——本版本声明了 @deepseek-ai/dsh-mcp-client 的 peer 版本范围(0.2.x)。
超出该范围的 harness 可能改变了 MCP client 的配置格式,请更新本插件。
许可证
MIT(本适配器)。REA 为 MIT,版权归其作者;Ghidra 为 Apache-2.0,版权归 NSA。此处不分发任何 上游代码。
