rea-dsh:在 DeepSeek Harness 里一键挂载 REA 逆向工程预设

前言

在 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)

典型用法

经过上面的安装步骤后:

  1. 重启对应 surface。
  2. 执行 /preset,选择 逆向工程模式,或直接 /preset reverse。
  3. 用 /mcp 查看 mcp__rea__* 工具列表;首次真实调用某工具时引擎才会启动。
  4. 指向样本并说明目标:行为、协议、校验逻辑、版本差异等。

两点限制来自官方说明:已有对话历史的会话不能切换预设,需新开会话;新机器尚无 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 目录页。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye