🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

REA 逆向接入 zhaofeng130/dsh-rea

DeepSeek Harness
zhaofeng13021 天前有提交已提供中文文档扫描:含敏感能力

让智能体调用本机 REA 分析二进制与安装包

30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/10 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add zhaofeng130/dsh-rea
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么
dsh 原生插件 · dev
装得上吗
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 21 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件
查看扫描证据(共 18 处,展示前 18 条)
  • 读取本地文件
    lib/options.js:89
    const manifest = JSON.parse(readFileSync(join(candidate, 'package.json'), 'utf8'))
  • 读取本地文件
    lib/options.js:101
    const built = existsSync(join(repoPath, 'dist', 'cli.js'))
  • 读取本地文件
    lib/options.js:105
    exists: existsSync(repoPath),
  • 读取本地文件
    lib/options.js:107
    entryExists: existsSync(entry),
  • 读取本地文件
    lib/runtime.js:84
    if (existsSync(join(candidate, 'dist', 'cli.js')) && existsSync(join(candidate, 'scripts', 'rea.mjs'))) {
  • 读取本地文件
    lib/runtime.js:113
    existsSync(candidate) && !existsSync(join(candidate, 'dist', 'cli.js')),
  • 读取本地文件
    lib/runtime.js:146
    if (existsSync(npxCli)) {
  • 执行外部命令来自配置/变量
    lib/runtime.js:203
    child = spawn(runtime.command, argv, {
  • 执行外部命令固定命令
    lib/runtime.js:303
    spawnSync('taskkill', ['/pid', String(child.pid), '/t', '/f'], { windowsHide: true, stdio: 'ignore' })
  • 写入本地文件
    lib/runtime.js:314
    mkdirSync(dir, { recursive: true })
  • 读取本地文件
    lib/runtime.js:324
    return readFileSync(which === 'out' ? out : err, 'utf8')
  • 写入本地文件
    lib/runtime.js:352
    mkdirSync(spillDir, { recursive: true })
  • 写入本地文件
    lib/runtime.js:355
    writeFileSync(file, text, 'utf8')
  • 读取本地文件
    lib/skills.js:61
    entries = readdirSync(root, { withFileTypes: true })
  • 读取本地文件
    lib/skills.js:70
    if (!existsSync(file)) continue
  • 读取本地文件
    lib/skills.js:71
    const parsed = parseSkillDocument(readFileSync(file, 'utf8'), file)
  • 读取本地文件
    lib/skills.js:95
    entries = await readdir(root, { withFileTypes: true })
  • 读取本地文件
    lib/skills.js:120
    raw = await readFile(file, 'utf8')
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 注册逆向分析技能
  • 调用本机REA工具
  • 分析二进制与安装包

DeepSeek Harness 的 REA(rea-agents)适配器:在每个会话里注册 reverse-engineer-anything 技能,外加 rea / rea_doctor 工具。REA 本身不随包附带。

README

由 DeepSeek 最新模型翻译生成
dsh-rea Reverse engineering in DeepSeek Harness, powered by REA. 把 reverse-engineer-anything 技能,加上 rea、rea_doctor 两个工具,注册进每个会话,智能体就能驱动本机的 REA 命令行,处理二进制、Electron/ASAR 包、Android 包、固件与归档产物。 把 REA 接进 DeepSeek Harness: 每个会话都能拿到 reverse-engineer-anything 技能,以及 rea、rea_doctor 两个工具,用于二进制、Electron/ASAR、Android 包、固件与归档产物的逆向分析。 本插件是 DSH 适配层,不包含 REA 本体,与 REA 项目无隶属关系。REA 由 morluto 开发(MIT),本插件只负责把它接进来——安装它不会改动你的 REA,也不会替你装 REA。技能正文源自 REA 自带的技能文档,署名见 THIRD-PARTY.md。
展开完整文档(README 剩余 1 节)
dsh-rea

Reverse engineering in DeepSeek Harness, powered by REA.
把 reverse-engineer-anything 技能,加上 rea、rea_doctor 两个工具,注册进每个会话,智能体就能驱动本机的 REA 命令行,处理二进制、Electron/ASAR 包、Android 包、固件与归档产物。

把 REA 接进 DeepSeek Harness: 每个会话都能拿到 reverse-engineer-anything 技能,以及 rea、rea_doctor 两个工具,用于二进制、Electron/ASAR、Android 包、固件与归档产物的逆向分析。

本插件是 DSH 适配层,不包含 REA 本体,与 REA 项目无隶属关系。REA 由 morluto 开发(MIT),本插件只负责把它接进来——安装它不会改动你的 REA,也不会替你装 REA。技能正文源自 REA 自带的技能文档,署名见 THIRD-PARTY.md。

它给你什么

| 注册项 | 名字 | 说明 |
| Skill | reverse-engineer-anything | 逆向任务的选路与取证纪律:先按目标类型选命令、大 Evidence 走落盘、结论必须落在 evidence 上 |
| Tool | rea | 执行一次 REA CLI 调用(args 数组),返回 stdout / stderr / 退出码 / 耗时;超出内联上限的 stdout 落盘并给出路径 |
| Tool | rea_doctor | 解析运行时可执行入口,汇总 REA 版本、分析引擎(Hopper/Ghidra/IDA)可用性、capability 目录与技能标识 |

真实输出(本机实测):

$ rea --version
6.3.0

$ rea_doctor
REA runtime: REA checkout /path/to/rea (6.3.0)
host: win32 x64 node: v24.18.1 rea: 6.3.0
healthy: false
ok node - 24.18.1
ok host - win32 x64
fail ghidra [missing_analysis_engine] - GHIDRA_INSTALL_DIR is not set
provider ghidra: unavailable - Set GHIDRA_INSTALL_DIR to an extracted Ghidra 12.1.x release directory.
catalog: 95 CLI commands, 139 MCP tools, 6 prompts
skill: reverse-engineer-anything v35

healthy: false 是正常现象:分析引擎是 bring-your-own,没配 Ghidra/IDA 只影响需要它们的任务(原生伪代码),不影响纯静态的 JS / 归档 / 固件区域分析。

安装

从 GitHub 源码装(本仓库零依赖、无构建步骤)
dsh plugin --profile <profile> add github:zhaofeng130/dsh-rea

或装 Release 里的预构建 tarball
dsh plugin --profile <profile> add https://github.com/zhaofeng130/dsh-rea/releases/latest/download/dsh-rea.tgz

在 dsh-market 里搜 dsh-rea 一键装也可以。装完开新会话(bundle 层在启动时组合)。

前置:本机要有 REA

插件不会替你安装 REA,也不会改动它。运行时按下面的顺序找一个可用的入口,第一个能跑通 --version 的胜出:

1. 配置里的 cliPath(或环境变量 DSH_REA_CLI)——.js/.mjs 用当前 node 跑,其它当可执行文件
2. 已构建的 REA checkout:<repoPath>/dist/cli.js 存在时用 node <repoPath>/scripts/rea.mjs
3. PATH 上的 rea
4. npx --yes rea-agents@<版本>(同目录有 npm/bin/npx-cli.js 时优先用它,避开 Windows 批处理 shim)

全都不可用时,rea 返回 error.code = "runtime_unresolved" 并附上处理建议,rea_doctor 会逐条列出被拒的候选与原因——不会假装成功。

拿到 REA 的方式(任选):npm i -g rea-agents;或克隆 morluto/rea 后在仓库里 npm ci && npm run build:cached,再用 repoPath 指过去。REA 的 engines 要求 node ^22.19.0 || ^24.11.0 || >=26.0.0。

配置

全部可选。写在 profile 的 cordis.patch.yml 对应行里,或用环境变量覆盖:

| config | 环境变量 | 默认 | 含义 |
| repoPath | DSH_REA_REPO | 自动发现 <插件>/../../rea、<插件>/../rea | 指定 REA checkout |
| cliPath | DSH_REA_CLI | — | 直接指定入口 |
| skillsDirs | — | [] | 额外技能根目录,优先级高于插件内打包的那份 |
| npxPackage | DSH_REA_NPX_PACKAGE | rea-agents | 兜底 npm 包名 |
| npxVersion | DSH_REA_NPX_VERSION | checkout 的版本,否则 latest | 兜底版本 |
| timeoutMs | DSH_REA_TIMEOUT_MS | 600000 | 单次调用超时(超时会 taskkill /pid /t /f,不留分析进程) |
| maxOutputBytes | DSH_REA_MAX_OUTPUT_BYTES | 262144 | 内联 stdout 上限,超出落盘到 $DSH_HOME/dsh-rea/spill/ |

<profile>/cordis.patch.yml
- id: dsh-rea
name: dsh-rea
config:
repoPath: D:/src/rea

实现要点

- 零依赖纯 JS:不 import @deepseek-ai/,只用 Node 内置模块,所以安装不需要构建授权(allowBuilds),也不怕宿主升级。
- 子进程捕获走文件描述符而非管道:受控 Windows 沙箱下管道会 EPERM,且 REA 的 Evidence 动辄上百 MB。超过内联上限就直接落盘,预览严格受 maxOutputBytes 约束,不会反过来比原文还长。
- 工具返回值必须是无损 JSON:显式 undefined 属性会被宿主判为 value is not lossless JSON,所以每个可选字段都经过 pruneUndefined。
- 不用 fs.rmSync 清临时目录:Windows 上 fs.rmSync 对含非 ASCII 的路径是静默空操作(用户目录名是中文时全中招),改用 unlinkSync/rmdirSync 递归删除,并有回归测试守住。
- 挂载即校验:打包的技能缺失、名字非 kebab-case、缺 description 都会在挂载时报错,而不是服务一个空目录。
- 工具 schema 只用受支持子集:仅 type/properties/required/additionalProperties/items/enum 与注解,测试逐节点断言,防止越界关键字让注册失败。

测试

node --test # 12 个用例

覆盖:挂载形状、schema 子集、技能解析与根目录优先级、参数拼装(JS 入口与 Windows 批处理 shim)、非 ASCII 路径递归删除、落盘预览、无损 JSON 契约,以及对真实 REA checkout 的端到端调用(rea --version、触发落盘的 rea --help、rea_doctor)。没有可用 REA 时相关用例自动 skip。检测到宿主自带 @deepseek-ai/dsh-util-values 时,还会用它的 isJsonValue/snapshotJsonValue 校验工具返回值。

实测宿主:dsh 0.2.0-rc.2(Windows)。插件只依赖 ctx.skills.registerProvider 与 ctx.tools.register 两项契约;这两个契约在 0.1.5-rc.2 的源码里逐字段比对一致(候选/定义字段、rank 600、schema 子集),但未在 0.1.x 实跑。因此没有声明 engines.dsh 范围——声明错了会被市场静默判成不兼容,而未声明的条目照常可见。

目录结构

dsh-rea/
├── index.js # 入口:注册技能 provider 与两个工具 ├── lib/options.js # 配置合并 + checkout 发现 ├── lib/runtime.js # 运行时解析、子进程调用、落盘、递归删除 ├── lib/skills.js # SKILL.md 解析与 provider ├── lib/tools.js # rea / rea_doctor 定义与渲染 ├── skills/reverse-engineer-anything/ # 打包的技能(源自 REA,署名见 THIRD-PARTY.md) ├── cordis.patch.yml # bundle 补丁层 └── test/plugin.test.mjs # node:test 用例

English quickstart

dsh plugin --profile <profile> add github:zhaofeng130/dsh-rea

Registers the reverse-engineer-anything skill and two tools: rea (one REA CLI
invocation — command and arguments as an array; stdout above the inline limit is spilled to disk and returned as stdoutPath) and rea_doctor (runtime resolution plus REA readiness). REA itself is not bundled and never modified; the plugin resolves a local entry point in the order cliPath → built checkout → rea on PATH → npx rea-agents, and answers with error.code: "runtime_unresolved" plus remediation when none of them responds. Zero dependencies, no build step, no @deepseek-ai/ imports. Tested against
dsh 0.2.0-rc.2 on Windows.

License

插件代码 MIT © 2026 zhaofeng130(LICENSE)。打包的技能正文源自 REA(MIT © 2026 morluto),署名与改动清单见 THIRD-PARTY.md。REA 本体不在本仓库内。
预览分享卡片长什么样 ↓zhaofeng130/dsh-rea
分享 · DeepSeek Harness Hub
zhaofeng130/dsh-rea

让智能体调用本机 REA 分析二进制与安装包

回到顶部