前言¶
在 DeepSeek Harness(DSH)里做逆向相关任务时,常见做法是单独跑 rea setup --client dsh,把 REA 的 MCP 服务写进 home patch;技能文件又要自己对齐 morluto/rea 仓库。关掉某一块时,MCP 和技能往往各管各的,还容易和插件体系里的 bundle 条目撞 id。
dsh-rea 由 BJ1919810 维护,分类为工作流插件。它把 morluto/rea 的能力包装成 DSH 插件:插件页上一个开关,同时启用或停用 REA MCP 服务(207 个逆向分析工具)以及 REA 的三个工作流技能;改开关无需重启 DSH。
这是什么¶
dsh-rea 是 DeepSeek Harness 插件,版本 1.0.0(MIT)。技能内容来自 morluto/rea(MIT),本仓库负责 DSH 集成与一键开关。
关掉插件时,工具和技能一起从当前 profile 消失;打开后一起恢复。插件本身不安装 Ghidra、jadx、apktool 等引擎,与 REA 一样只做适配层。
核心功能¶
REA MCP 服务¶
通过 bundle patch 拉起 rea-agents 的 MCP 子命令,对外提供 207 个逆向相关工具,覆盖 Ghidra、IDA、jadx、apktool、Frida、adb、pcap、固件、浏览器、Electron、托管代码等方向(具体可用性取决于本机是否安装对应引擎并配置环境变量)。
三个工作流技能¶
与 MCP 同开同关,技能 id 与 upstream 一致:
reverse-engineer-anything(含 6 篇 references)rea-tool-designrea-changelog-update
运行时由 lib/index.js 解析 frontmatter;skills/ 为 morluto/rea .agents/skills/ 的原样副本。
跨平台启动器¶
cordis.patch.yml 用表达式按平台选择启动方式:Windows 经 cmd.exe 调用 npx,其他平台直接 npx。作者在 Windows x64 上实测表达式会求值,207 工具可用;macOS / Linux 的 npx 分支未实测。
安装与启用¶
本仓库未发布到 npm。GUI 使用 --profile desktop;TUI 改为 --profile tui。
方式一:从 GitHub 安装(作者注明未单独验证 DSH 供应链是否一律放行;2026-10-16 曾实测 pnpm 安装成功且策略放行):
dsh plugin --profile desktop add github:BJ1919810/dsh-rea
方式二:clone 后按本地路径安装(作者标注为最稳,已实测环境为 Windows x64 + DSH Desktop + REA 6.5.0):
git clone https://github.com/BJ1919810/dsh-rea
dsh plugin --profile desktop add file:D:/path/to/dsh-rea
锁定版本(仓库已打 tag):
dsh plugin --profile desktop add github:BJ1919810/dsh-rea#v1.0.0
装完后在插件页会出现 dsh-rea,该开关即为总开关。
卸载:
dsh plugin --profile desktop remove dsh-rea
不会删除你自备的引擎目录。
前置环境与变量¶
常用组合(摘自 README):
| 用途 | 需要自备 |
|---|---|
| 原生 PE/ELF 静态分析 | Ghidra 12.1.x + JDK 21+(或按 REA 文档自备 IDA) |
| APK 资源 / DEX | apktool、jadx-headless-mcp 0.7.1 的 -all.jar |
| 真机 / 模拟器 | Android platform-tools(adb) |
插件不写死路径。REA MCP 继承 DSH 进程环境,请先把变量设为用户或系统环境变量,再启动 DSH。示例:
GHIDRA_INSTALL_DIR = D:\tools\ghidra_12.1.4_PUBLIC
JAVA_HOME = D:\tools\jdk-21
REA_JADX_MCP_JAR = D:\tools\jadx-headless-mcp-0.7.1-all.jar
REA_APKTOOL_COMMAND = D:\tools\apktool\apktool.cmd
REA_ADB_PATH = D:\Android\Sdk\platform-tools\adb.exe
只配置实际用到的项。检查就绪情况:
npx -y rea-agents@latest doctor --json
不设变量也能装上并启动 MCP,但对应工具会以 capability_unavailable 失败,并在提示中说明应设置哪个变量。修改环境变量后需要重启 DSH(仅在启动时读取环境)。
与 home patch 的冲突¶
若曾执行 rea setup --client dsh,REA 可能在 ~/.dsh/cordis.patch.yml 写入自管的 rea-mcp,与插件条目 id 冲突,且不受插件开关控制。使用本插件前,应删除 home patch 中那份配置,并将该文件恢复为:
[]
home patch 不能留空文件或纯注释,否则 DSH 启动失败;停用该层时必须写 []。
典型用法与验证¶
- 安装插件并打开开关。作者实测:ON 时
cordis.yml出现rea-skills/rea-mcp;OFF 时两条目消失,调用报unknown tool。 - 在对话中通过 MCP 调用逆向工具(例如
inspect_apktool_client);配置正确时可返回本机 apktool 版本信息。 - 需要工作流引导时,依赖已启用的三个技能(如
reverse-engineer-anything及其 references)。
维护者同步 upstream 技能:
node sync-skills.mjs D:\path\to\rea-checkout
node test/smoke.mjs
适用场景与注意¶
适合已在 DSH 里做逆向、希望 MCP 与技能统一开关、并愿意自备分析引擎的开发者。插件以当前 DSH 进程权限运行;安装前请阅读仓库源码、LICENSE 与 LICENSE-REA / NOTICE,确认许可与出处。
Node 要求:>=22.19.0(见 package.json)。macOS / Linux 上的完整运行路径作者未实测,若表达式启动有问题,可按 README 将 cordis.patch.yml 中启动器改为字面量(见文件内注释)。
社区目录 SkillHub 上的 dsh-rea 页 与 GitHub 仓库相互独立,并非 DeepSeek / 幻方官方应用商店;DSH 生态理念是「一切皆插件」,可按需从目录或仓库获取。
结尾¶
dsh-rea 把 REA 的 MCP 与三个工作流技能收成插件页上的一个开关,减少 home patch 与技能版本各管各的摩擦;引擎仍须本机自备并按文档配置环境变量。
- 目录页:https://www.skillhub.cn/plugins/BJ1919810/dsh-rea
- GitHub:https://github.com/BJ1919810/dsh-rea