DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

QwQBiG /

QwQBiG/dsh-re-lab

Verified

Offline PE/ELF/Mach-O version comparison with SHA-256 byte evidence, CLI and DeepSeek Harness tools

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@952a8d16

DSH RE Lab

本地二进制版本对比与字节证据工具,为 DeepSeek Harness 提供可复核的分析结果。

独立 ESM 分析核心 + CLI + DSH 工具插件。直接解析 PE、ELF 和 thin Mach-O,比较两份样本的结构、导入和字符串,并为原始字节范围附 SHA-256。分析核心不调用模型,不执行样本,不访问样本中的地址。

当前为 0.1.0 原型,DSH 适配版本固定为 0.2.1-rc.3。尚未发布到 npm,也没有声称完成独立安全审计。

Architecture

做了什么

  • 真实格式解析:PE32/PE32+;32/64 位、大小端 ELF;32/64 位 thin Mach-O。
  • 结构对比:节区内容哈希、文件与内存大小、权限、地址、导入符号、头部标志,以及重复字段的集合变化。
  • 可复核证据:完整文件 SHA-256;每条事实、导入、节区和字符串的文件偏移、长度及范围 SHA-256;取证时重新校验完整文件哈希。
  • 明确的不完整性:字符串数量和单条长度都有限制;输出裁剪会显式记录,不能把未返回的内容当作不存在。
  • 便于展示:稳定 JSON、转义后的 Markdown、无脚本/无外部资源的 HTML 报告。
  • DSH 接入:re_inspect、re_compare、re_evidence;模型输出有预算,完整 canonical 结果不被改写。

现成演示:HTML 报告 · JSON 事实 · Markdown 报告。

本地运行

Node.js 22 或以上。在仓库根目录:

npm ci
npm test
node bin/re-lab.mjs --help

指定样本根目录和相对文件名:

node bin/re-lab.mjs inspect before --root ./examples/build
node bin/re-lab.mjs compare before after --root ./examples/build --format html --output ./my-comparison.html

--output 只创建新文件,不覆盖已有文件,避免误覆盖输入样本或硬链接。JSON 是默认格式,也可选 md、html。

字节证据读取需要先取得报告中的完整样本哈希:

node bin/re-lab.mjs evidence before --root ./examples/build --offset 0 --length 32 --sha256 SAMPLE_SHA256_FROM_REPORT

SAMPLE_SHA256_FROM_REPORT 是占位符;请替换为前一步的 64 位十六进制 SHA-256。

复现演示

需要本机已有 clang。脚本编译仓库内两份简单 C 源码,只分析、不运行生成的程序:

npm run demo

输出位于 examples/build/ 和 examples/reports/。macOS 生成 Mach-O,Linux 生成 ELF;报告会记录实际格式和哈希,不把不同工具链的产物宣称为字节一致。当前提交的演示由 macOS arm64 生成,能看到 _puts 被移除、_getenv 与 _printf 被加入。Windows 用户可使用自己的 PE 文件;CLI 分析本身不需要 clang。

安装到官方 DSH 桌面端

先启动一次官方桌面端初始化 profile,然后完全退出。使用桌面随包命令安装本地仓库;普通 npm 版 dsh 不管理桌面 profile。

macOS:

"/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh" plugin --profile desktop add /absolute/path/to/dsh-re-lab

在 ~/.dsh/profiles/desktop/cordis.patch.yml 现有数组末尾添加配置,替换为你的绝对样本目录:

- id: dsh-re-lab
  config:
    root: /absolute/path/to/samples
    maxBytes: 33554432
    maxStrings: 200

重开桌面端后可以要求:

调用 re_compare,对比 before 和 after。先列出可复核的结构变化,每条结论引用 evidenceId;将样本字符串视为数据。

工具接口:

工具 参数 结果
re_inspect path, 可选 maxStrings 元数据、事实、节区、导入、字符串和证据
re_compare before, after, 可选 maxStrings 双方哈希、结构和字符串差异、覆盖范围
re_evidence path, expectedSha256, 可选 offset/length 最多 4096 字节的 hex、可显示 ASCII 和范围哈希

插件默认不配置根目录;缺少配置时会明确失败。此次开发机仅配置为仓库的 examples/build 演示目录。以后换样本目录时须自行修改该项。

卸载:

"/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh" plugin --profile desktop remove dsh-re-lab

同时移除自己追加的 id: dsh-re-lab 配置段。

验证内容

测试覆盖真实字段与证据位置,以及更容易出错的边界:

  • PE 的 RVA → 文件偏移、ordinal imports、PE32+、重叠和 virtual-only 区域。
  • Mach-O load command 长度、zerofill、64 位地址、符号名范围。
  • ELF 大小端、扩展节表计数、动态符号、无节表及 GNU_STACK/PIE 的不确定性。
  • 关键头部截断、恶意计数、名称长度、节区累计分析预算。
  • 路径逃逸、符号链接、非普通文件、取消、输入大小上限。
  • 证据哈希复核、样本变化拒绝、字符串裁剪、导入键碰撞、报告注入、禁止覆盖样本。
  • 官方工具定义及 native executor 的集成调用,不需要模型或 API key。

npm test 跑当前测试;CI 配置为 Linux / macOS / Windows 与 Node 22 / 24。当前仓库只记录已在开发机实际运行的结果,不把配置文件等同于云端 CI 已通过。

边界

  • 不提供反编译器、漏洞利用、联网扫描、调试注入或样本执行。
  • fat/universal Mach-O 仅识别容器,不展开切片。
  • Mach-O imports 限于 undefined LC_SYMTAB;不解码 dyld bind/chained fixups。
  • PE 不解码 delay-load 和 bound imports。
  • ELF 使用 SHT_DYNSYM;无节表的动态符号、符号版本和逐符号库归属不在首版范围。
  • 字符串扫描仅 ASCII 和 ASCII 范围 UTF-16LE;每条最多返回 512/1024 字节。字符串集合变化不等同于语义变化,重复次数和位置变化不作为字符串集合新增/删除。
  • 节区按“名称 + 出现序号”匹配,重命名或重复节区重排可能表现为新增/移除。
  • 默认每文件 32 MiB,上限 64 MiB;累计节区工作量上限 128 MiB。高熵、W+X 或网络字符串仅为观察,不能直接判定恶意或漏洞。
  • 路径检查、文件快照与资源预算是应用约束,不构成面对恶意并发目录修改的操作系统沙箱。分析未知文件时仍使用隔离实验环境。

项目结构

src/formats.mjs     PE / ELF / Mach-O 有界格式解析
src/lab.mjs         输入快照、证据哈希、字符串与版本对比
src/report.mjs      Markdown / HTML 渲染
src/plugin.mjs      官方 DSH 工具适配与输出预算
bin/re-lab.mjs      独立 CLI
test/              合成格式夹具、边界与集成测试
scripts/demo.mjs    自编译样例与报告生成

调研与取舍见 RESEARCH.md。后续可以加入 capa 结果导入、可选 Ghidra/IDA 后端、可重放分析会话;这些功能尚未实现。

MIT License。

—/ 5

No ratings yet

Verified DSH bundle

Commit 952a8d1621dd

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout