dsh-plugin-reverse

DSH PLUGIN开发与运行时

仓库 wangyin572/dsh-plugin-reverse · npm dsh-plugin-reverse

开发与运行时 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

为 DeepSeek Harness 提供 JavaScript 逆向分析能力:先评估可行路线,再静态还原混淆前端代码为可在 Node 独立运行的计算模块,并生成 Hook 脚本与加密校验。

验证等级 L5 L5 · 运行验证通过
GitHub 星标 2 复刻 0 · 未关闭 issue 0
最近更新 2026-10-07 创建于 2026-10-07
README 13.1 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:wangyin572/dsh-plugin-reverse
兼容 DSH 版本0.2.0-rc.2版本不匹配时安装会报错
Node.js 要求>=24来自仓库 package.json 的 engines 字段
前置依赖@deepseek-ai/cordis@~4.0.4、@deepseek-ai/dsh-tools@>=0.2.0-rc.2 <0.3.0 等 3 个需要同时安装的同级依赖
npm 包名dsh-plugin-reverse可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-plugin-reverse:DeepSeek Harness 的 JavaScript 逆向工程工具集

  • 逆向路线可行性评估
  • 生成浏览器 Hook 脚本
  • 静态还原为纯 Node 模块
  • 安全反混淆与特征检测
  • 20 种加密校验运算

适用场景

文件读写

上游标签

dsh-plugin

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

仓库档案

开发与运行时
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方wangyin572仓库 dsh-plugin-reverse · 默认分支 main
分类开发与运行时developer
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue2 / 0 / 0收录时的数值,非实时
创建 / 更新2026-10-07 · 2026-10-07最后推送 2026-10-07
本站收录2026-10-07首次进入本站目录的时间

README 全文

13.1 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-plugin-reverse

DeepSeek Harness 的 JavaScript 逆向工程工具包:先评估路线,再按路线产出可交付的结果。

English · 简体中文

  • 静态还原(重点):把抠出来的前端混淆 JS 变成可在纯 Node 中独立运行的计算函数
    ——剥离 window/document/navigator/canvas 等宿主依赖,抹平环境差异,
    不需要浏览器、不需要注入页面,就能独立计算 sign、加密请求体、解密响应。
  • 辅助定位:生成 Hook 脚本,捕获函数入参与返回值以及调用栈,用于调试取证、定位加密入口。
  • 验算:内置 AES / RSA / MD5 / SHA / HMAC / 循环异或 / 单字节爆破 / 大数模幂,
    支持用已知密文、密钥、IV 快速复算。

> 适用范围:本插件面向你自己有权分析的代码——自有项目、已授权的安全测试、
> 恶意样本分析、CTF、以及互通性研究。工具本身是通用的调试与静态分析技术,
> 不对任何特定目标做针对性绕过。Hook 会记录函数入参与返回值,可能包含凭证类数据,
> 请只在你被授权分析的环境中使用。不要用它去处理他人的账号或系统。


1. 能力矩阵

工具 作用 典型产出
rev_assess 每次逆向前先跑它:判断 Hook 是否可行、静态还原是否可行,给出卡点与执行计划 Markdown 评估报告
rev_hook_generate 生成浏览器可执行的 Hook 脚本(WebCrypto / CryptoJS / JSEncrypt / 网络层 + 自动发现) 自包含 .js 脚本
rev_extract_pure 静态还原:依赖闭包抽取 + 环境注入,产出无宿主依赖的纯算模块 pure.mjs / env.mjs / demo.mjs
rev_deobfuscate 语义等价的安全重写(转义还原、常量折叠、成员访问规范化)+ 混淆特征识别 重写后的源码 + 分析报告
rev_crypto_calc 20 种密码学验算操作,覆盖标准库与手写大数两条路径 结构化验算结果

2. 安装

需要 Node.js ≥ 24。lib/ 构建产物已随仓库提交,从 GitHub 源码安装不需要任何构建授权。

方式一:直接装(推荐)

dsh plugin --profile web add github:wangyin572/dsh-plugin-reverse

方式二:本地 clone 后安装(要改代码时用)

git clone https://github.com/wangyin572/dsh-plugin-reverse.git
cd dsh-plugin-reverse
npm install                          # 装运行时依赖(@deepseek-ai/* 与 acorn)
dsh plugin --profile web add &quot;$(pwd)&quot;

然后重启该 profile。验证是否生效:

dsh --profile web --dump-config | grep -A3 dsh-plugin-reverse

> 本地路径安装时 npm install 不是可选项。 dsh plugin add &quot;$(pwd)&quot; 走的是 link::
> pnpm 只创建符号链接,不会为它安装依赖,所以运行时用到的 @deepseek-ai/* 与 acorn
> 得由仓库自己的 node_modules 提供,否则报 ERR_MODULE_NOT_FOUND。
> lib/ 已在版本库里,不需要再构建;只有改了 src/ 才要 npm run build 并一起提交。

安装后模型侧会出现上表的 5 个工具。运行时依赖 @deepseek-ai/cordis、@deepseek-ai/dsh-tools、
@deepseek-ai/schemastery 与 acorn,全部公开在 npm 上。注意标签不同:
[email protected] 发布在 next 标签下,而 cordis ~4.0.4 与 schemastery
~3.18.4 从 latest 解析。前三个声明为 peerDependencies:DSH 的 profile 解析层会把它们
指向宿主安装目录里的那一份实例(profile 里 pnpm 的 autoInstallPeers 是关闭的,不会装出重复实例)。

免构建的预打包

npm pack 会产出一个可直接安装的压缩包,里面已含构建好的 lib/ 与文档:

npm pack
dsh plugin --profile web add ./dsh-plugin-reverse-0.1.0.tgz

被社区目录收录

社区插件目录靠 GitHub topic 自动发现,给仓库加上 dsh-plugin 话题即可(网页 Settings → Topics,
或 gh repo edit --add-topic dsh-plugin)。爬虫读取仓库根目录的 package.json,本仓库已满足:

  • dsh.bundle.patch 指向仓库内的相对路径 → ./cordis.patch.yml ✅
  • 仓库公开、未归档;description 会作为目录里的一行简介 ✅

> 不要再往这个文件里加 dsh.profile。 官方文档写得很明确:组合包声明 dsh.bundle,
> profile 声明 dsh.profile,没有东西同时是两者。dsh.profile 属于 profile 目录的
> package.json,由 dsh plugin add 负责写入;部分安装器(如 find-plugin)会把
> 「bundle/profile 混用」的仓库当作无效候选直接过滤掉。

配置

在 profile 的 cordis.patch.yml 里按行 id 覆盖:

- id: reverse-toolkit
name: &#x27;dsh-plugin-reverse&#x27;
config:
maxSourceBytes: 2000000   # 单次分析允许的最大源码字节数
hookLogLimit: 2000        # Hook 脚本日志缓冲区上限
hookAutoDiscover: true    # Hook 是否默认自动发现可疑函数

不写 config 段也能用,全部字段都有默认值。


3. 使用流程

3.1 第一步永远是评估

rev_assess(code = &lt;抠出来的那一段 JS&gt;)

报告会给出四种结论之一:

结论 含义
static-first 代码静态完整可见、混淆程度低 → 直接还原
hook-then-static 两条路都可行 → 先 Hook 取一组真实的「输入 → 输出」,再还原并逐字节比对
hook-first 存在 eval / new Function / with,静态看不到真实逻辑 → 只能先 Hook
blocked 信息不足(例如逻辑在 Worker/WASM 中),需要补充材料

同时给出:混淆程度评分、特征清单、入口候选排序、必须采集的环境值、以及有序执行计划。

3.2 路线①:Hook 定位入口

rev_hook_generate(targets = [{ object: &quot;window&quot;, method: &quot;makeSign&quot; }])

把返回的脚本保存为 .js,在目标页面执行(DevTools 控制台 / Sources → Snippets / CDP
Page.addScriptToEvaluateOnNewDocument)。执行后:

__revHook.dump()    // 查看捕获记录
__revHook.save()    // 导出 JSON
__revHook.unhook()  // 还原所有被替换的方法

每条记录都带调用栈——这是定位「谁在调用加密函数」最有效的信息。

3.3 路线②:静态还原(重点)

rev_assess(code = ...)                    # 先确认可行
rev_deobfuscate(code = ...)               # 预处理:转义还原 / 常量折叠 / 成员访问规范化
rev_extract_pure(code = ..., entry = [&quot;makeSign&quot;])

产出三个文件,把它们落盘后直接运行验证:

node demo.mjs

pure.mjs 的形态:

export function createRuntime(env) {
// 宿主对象全部由 env 注入,而不是逐个改写引用点
const { navigator, screen, document, btoa } = env

// ---- 来自原文件第 4 行:_0x1a2b (function) ----
function _0x1a2b(a, b) { /* 源码原文,未改写 */ }
// ---- 来自原文件第 17 行:makeSign (function) ----
function makeSign(payload) { /* 源码原文,未改写 */ }

return { makeSign }
}

调用侧(完全不涉及浏览器):

import { createRuntime } from &#x27;./pure.mjs&#x27;
import { createEnv } from &#x27;./env.mjs&#x27;

// 采集到的真实环境值从这里注入
const runtime = createRuntime(createEnv({
navigator: { userAgent: &#x27;真实 UA&#x27;, platform: &#x27;MacIntel&#x27; },
document: { cookie: &#x27;真实 cookie&#x27; },
screen: { width: 1512 },
}))

console.log(runtime.makeSign(&#x27;业务参数&#x27;))

3.4 验算

rev_crypto_calc(operation = &quot;aes-decrypt&quot;, data = &quot;&lt;密文&gt;&quot;, passphrase = &quot;口令&quot;, dataEncoding = &quot;base64&quot;)
rev_crypto_calc(operation = &quot;hash&quot;, algorithm = &quot;md5&quot;, data = &quot;abc&quot;)
rev_crypto_calc(operation = &quot;rsa-manual-pow&quot;, value = &quot;&quot;, exponent = &quot;&quot;, modulus = &quot;&quot;)
rev_crypto_calc(operation = &quot;xor-brute-force&quot;, data = &quot;&quot;)

支持的 20 个操作:hash、hmac、aes-encrypt、aes-decrypt、openssl-decrypt、
openssl-encrypt、xor、xor-brute-force、xor-recover-key、rsa-encrypt、rsa-decrypt、
rsa-sign、rsa-verify、rsa-public-from-modulus、rsa-manual-pow、rsa-key-info、
mod-pow、mod-inverse、bigint-parse、hex-normalize。

编码永远显式(utf8/hex/base64/base64url/latin1):同一个字符串按 hex 和 utf8
解释会得到完全不同的结果,静默猜测只会让人拿着错误答案以为算对了。非法 hex、奇数长度、
错长度 IV 都会直接报错而不是被截断。


4. 纯计算核心可单独使用

核心是零宿主依赖的纯函数层,不引用 cordis、不引用 DSH、不做任何 I/O。
把本包作为依赖列出的项目,可以通过它导出的子路径直接使用:

import { aesDecrypt, opensslDecrypt, hmac, xorBytes, rsaManualPow } from &#x27;dsh-plugin-reverse/core&#x27;

也可以把核心整个拷走:本仓库里源码位于 src/core/,编译产物 lib/core/index.js 已随仓库提交
(改了 src/ 之后用 npm run build 重建)。

它遵循与本插件「静态还原产出物」完全相同的约束:无 DOM/BOM、无副作用、可独立运行。


5. 工程结构

src/
├── core/          纯计算核心(encoding / hash / aes / rsa / xor / errors)
├── analysis/      静态分析(ast / host / deobfuscate / extract / hook / assess)
├── services/      cordis 服务(ctx.reverseCrypto / ctx.reverseAnalysis)
├── tools/         5 个 agent 工具(defineTool)
└── index.ts       根插件:注册服务与工具
test/
├── core.test.mjs      密码学核心(含外部 OpenSSL 向量)
├── analysis.test.mjs  解混淆 / 宿主识别 / 闭包抽取 / Hook / 评估
├── plugin.test.mjs    插件契约与工具端到端链路
└── fixtures/          仿真混淆样本

依赖方向单向:tools → services → analysis → core。核心层永远不反向依赖 DSH,
因此「插件的核心」与「插件产出的纯算代码」遵循同一套无宿主约束。


6. 验证

npm run build                # TypeScript 严格模式编译
npm test                     # 运行测试套件
npm run check                # 上面两步
npm run verify:integration   # 真实启动器集成验证(隔离 DSH_HOME,约 1 分钟)
npm run verify:all           # 全部

集成验证会在工作区内的 .dsh-scratch/ 建一个隔离的 DSH_HOME,
用随产品附带的 web 模板创建 profile、真实执行 dsh plugin add,
并断言 --dump-config 出现本包贡献的行、--dump-config-schema 能 import 本包模块。
脚本内置护栏,拒绝把临时 home 落到仓库之外,全程不触碰真实的 ~/.dsh。

测试里几条关键判据:

  • AES/KDF 对齐外部实现:向量由系统 OpenSSL 3.6 现场生成
    (openssl enc -aes-256-cbc -md md5 -S ... -pass pass:...),不是自己造自己验。
  • 语义等价:把原始混淆代码放进 node:vm 的模拟浏览器里跑,再把静态还原产物
    在纯 Node 里跑,断言两者输出逐字节相同;并断言改动环境值会改变结果。
  • 生成物可执行:Hook 脚本与还原产物都先过 AST 语法校验,再在沙箱里真实执行,
    断言「返回值不变」「可还原」「不依赖模块加载器」。
  • 插件契约:真实挂载 cordis,断言 5 个工具注册成功、两个服务可用、
    参数校验链路完整。

7. 诚实的边界

这些是能力边界,不是待办事项。工具会在这些情况下明确报告卡点,而不是产出一段
「能跑但算错」的代码:

情况 工具行为
eval / new Function / with 判为静态还原受阻,建议走 Hook;报告 blocker,不生成代码
控制流平坦化 不自动重排(错误重排会静默改变语义);报告 case 顺序供人工重建,并把置信度降为 low
字符串数组 + 解码函数 只识别与报告,不自动内联(轮转偏移未完全还原前内联等于猜)
canvas / WebGL / Audio 指纹 无法在 Node 复现;env.mjs 里留显式占位并列入 unmockable,需外部采集
依赖真实浏览器实例的环境值 产出 MUST_CAPTURE 占位,绝不编造一个"合理"的值
入口依赖了无法抽取的外层作用域 报告 unresolved-reference 卡点,说明需要补哪段代码
只给了 (n, e, d) 没有 CRT 参数 无法构造 PEM 私钥(数学上需要 p、q);改用 rsa-manual-pow 直接做模幂

MUST_CAPTURE 是静态还原的固有边界而非实现缺陷:签名里如果混入了
navigator.userAgent 或 canvas 指纹,任何「模拟一个值」的做法都只会得到一个
看起来对、实际错的签名。正确做法是在浏览器里采集一次,然后注入。


8. 许可

MIT

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-plugin-reverse 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:wangyin572/dsh-plugin-reverse` 即可。对应的 npm 包名是 `dsh-plugin-reverse`。

dsh-plugin-reverse 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-plugin-reverse 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-plugin-reverse 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2。

dsh-plugin-reverse 需要什么运行环境?

Node.js >=24;需要同时安装 @deepseek-ai/cordis@~4.0.4、@deepseek-ai/dsh-tools@>=0.2.0-rc.2 <0.3.0、@deepseek-ai/schemastery@~3.18.4。环境不满足时安装会失败,建议先确认本机版本。

dsh-plugin-reverse 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-plugin-reverse 有哪些功能?

逆向路线可行性评估、生成浏览器 Hook 脚本、静态还原为纯 Node 模块、安全反混淆与特征检测、20 种加密校验运算。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

开发与运行时
按星标排序,可作替代方案

rea

rea

L4 · 沙盒安装通过 2.6 万 星

dsh-TUI

dsh-TUI

Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。

L4 · 沙盒安装通过 4,292 星

mirage

mirage

把文件系统与 bash 提供者换成 mirage 虚拟工作区:文件工具与 shell 命令作用于挂载的资源(RAM、S3、Redis、Sla

L3 · 安装规范通过 3,681 星

dashi-taskboard

dashi-taskboard

把当前已安装并运行中的 Codex Taskboard 嵌入 DeepSeek Harness 侧边栏,并通过 Launcher 运行时描述

L4 · 沙盒安装通过 3,311 星

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。