前言¶
在 DSH 里做二进制或打包产物分析,常见做法是自行接 MCP、配 Ghidra / Hopper / IDA 路径,再写一套让智能体「先证据后结论」的工作流。步骤多、各端(桌面、Web、TUI、无头)配置还容易不一致。下面介绍社区插件 rea-dsh(npm 包名 dsh-rea-reverse-preset):它向 DSH 的预设选择器增加一条「逆向工程模式」入口,在同一 bundle 里挂载约 139 个 REA 工具、逆向工程师人设,以及 evidence-first 分析技能。
这是什么¶
rea-dsh 由维护者 Verisw 发布,GitHub 仓库为 Verisw/rea-dsh,在 SkillHub 等社区目录中归类为工作流类 DSH 插件。它本身不替代 REA,而是把 REA 的逆向工具链、人设与技能打包成 DSH 可识别的 bundle,安装后只需选预设即可开工;主机侧的权限、模型路由、沙箱与持久化仍由你的 DSH 配置决定。
核心功能¶
资料中明确的能力包括:
- 反汇编 / 反编译:经 Ghidra、Hopper、IDA 的无头或 CLI 入口获取伪代码、交叉引用、调用图、函数边界。
- 二进制侦察:字符串、符号、节区、导入导出表、熵、编译器指纹等。
- 打包产物:Electron
.app/ asar、APK / IPA、JS bundle 等可先 unpack 再分析。 - 交叉校验:同一函数可在多引擎间对比,降低单一反编译器的误导。
- 书面结论:工作流强调先写证据再下结论,而非猜测。
某台机器缺少某一引擎时,只会少该引擎对应的一组工具,其余工具仍可用。REA 进程非常驻:挂载模式后仅启动轻量 supervisor,工具列表来自本地 manifest(~/.dsh/cache/dsh-rea-reverse-preset/);首次真正调用 mcp__rea__* 工具时 REA 才启动(约 1–2 秒),空闲 10 分钟后自行停止,下次调用再拉起。
安装与启用¶
一键安装(推荐)¶
官方推荐从已发布包执行:
npx -y dsh-rea-reverse-preset setup
若你在仓库 checkout 目录内,则使用:
npm run setup
上述流程会检查 Node / dsh 版本与各 profile,安装到桌面、Web、dsh-tui、headless 等面,探测 Hopper / Ghidra / Java / IDA,运行校验并打印需要重启的进程列表;重复执行是幂等的。
其它常用变体:
npx -y dsh-rea-reverse-preset --check # 仅报告状态
npm run setup -- --write-env # 将探测到的引擎路径写入 ~/.zshrc
npm run setup -- --warm # 预先拉取 REA 并生成工具 manifest
npm run setup -- --uninstall # 从各 surface 移除
注意:dsh plugin 需要 Node >= 22.18 或 >= 24;更早版本缺少 import.meta.main,命令可能 exit 0 却未实际安装。npm run setup 会探测这一点。主机 dsh 版本需在 @deepseek-ai/dsh >=0.2.0-rc.2 且 <0.3.0-0 范围内,否则 bundle 会被跳过。
按 surface 手动安装¶
桌面与 dsh web 使用不同 profile,只装一端不会影响另一端;桌面 profile 需先由桌面应用创建,安装前建议完全退出桌面应用。
| 使用方式 | profile | 命令 | 生效方式 |
|---|---|---|---|
| 桌面应用 | desktop |
dsh plugin --profile desktop add github:Verisw/rea-dsh |
完全退出后重新打开 |
浏览器 dsh web |
web |
dsh plugin --profile web add github:Verisw/rea-dsh |
重启 dsh web |
| 终端 dsh-tui | dsh-tui |
dsh plugin --profile dsh-tui add github:Verisw/rea-dsh |
重启 TUI |
脚本 / 无头 dsh -p |
headless |
dsh plugin --profile headless add github:Verisw/rea-dsh |
下次运行生效 |
查看已安装情况(checkout 场景):
node scripts/install.mjs
引擎路径(可选)¶
默认无需配置,REA 自行发现引擎。多版本或非默认路径时可设置环境变量(修改后需重启 dsh):
| 变量 | 用途 |
|---|---|
HOPPER_LAUNCHER_PATH |
Hopper CLI launcher |
GHIDRA_INSTALL_DIR |
Ghidra 安装目录(资料写明当前 REA 期望版本为 12.1.4) |
JAVA_HOME |
Ghidra 使用的 JVM |
REA_IDA_MCP_CONFIG |
IDA 9.x 的 MCP 配置文件 |
REA_MCP_SPEC |
覆盖 REA 版本,例如 rea-agents@6.7.0 |
REA_LAZY_IDLE_MS |
空闲多少毫秒后停止引擎,默认 600000;0 表示保持运行 |
REA_LAZY_MODE |
lazy(默认)或 eager(主机启动即拉起 REA) |
典型用法¶
经过上面的安装步骤后:
- 重启对应 surface。
- 执行
/preset,选择 逆向工程模式,或直接/preset reverse。 - 用
/mcp查看mcp__rea__*工具列表;首次真实调用某工具时引擎才会启动。 - 指向样本并说明目标:行为、协议、校验逻辑、版本差异等。
两点限制来自官方说明:已有对话历史的会话不能切换预设,需新开会话;新机器尚无 manifest 时,首次启动会拉 REA 生成 manifest,也可事先执行 npm run setup -- --warm。
适用场景与注意¶
适合已在 DSH 生态中工作、需要 Ghidra / Hopper / IDA 统一入口与 evidence-first 分析流程的逆向与安全研究人员。插件以当前 dsh 进程的权限运行;安装前请自行审阅 仓库源码 与 MIT 许可证。若 REA 无法启动,预设仍可选,只是没有 REA 工具(fail softly)。卸载示例:
dsh plugin --profile <desktop|web|headless|dsh-tui> remove dsh-rea-reverse-preset
本地 symlink 安装时还可使用 npm run unlink:all。
社区目录页(与 DeepSeek / 幻方无官方从属关系):skillhub.cn/plugins/Verisw/rea-dsh。更细的架构与排错见仓库内中文文档 docs/,例如 troubleshooting.md。
结尾¶
rea-dsh 把 REA 约 139 个逆向工具、人设与分析技能收成一条 DSH 预设,一条 npx 或按 profile 的 dsh plugin add 即可在桌面、Web、TUI、无头四套面共享同一 bundle,且不改动主机原有 composition。需要插件详情与更新时,请查阅 GitHub:Verisw/rea-dsh 与上述 SkillHub 目录页。