ghidra-skill-for-dsh
Discovered★ 11Customized dsh (DeepSeek Harness) reverse-engineering agent skill family: Ghidra headless daemon + triage/unpacking/static/vulnerability/dynamic/traffic/Android seven scenarios | Reverse-engineering agent skills: triage, unpacking, decompile, pwn audit, pcap forensics, APK analysis
ghidra-skill-for-dsh
面向 dsh(DeepSeek Harness)的逆向工程 agent skill 家族:Ghidra 12.x headless 常驻 daemon(~0.2s/命令,无 Jython/GUI/MCP 依赖)+ 八场景方法论。覆盖 CTF 逆向、crackme、恶意样本分诊、漏洞预筛、二进制利用(pwn)、pcap 取证、APK 分析。
Reverse-engineering agent skills for dsh: a Ghidra headless RPC daemon (vendored ghidra-rpc + dsh patches) plus eight scenario skills — triage / unpack / static / vuln-audit / dynamic / pwn / traffic / android-re — for CTF reverse engineering, unpacking, malware triage, binary exploitation, pcap forensics and APK analysis.
实测性能
全部结果为真实 CTF 题独立求解(不参考旧台账/WP),经原程序正负对照验证、session 逐行审计确认。
| 题目 | 题型 | 成绩 | 关键证据 |
|---|---|---|---|
| encode | UPX 壳 + 换表 base64 + RC4 | 40 min 做不出 → 16 min 解出 | 调校前后同题对比;提速来自机制而非模型:常驻 daemon + 三道脚本闸门 + 函数级 Oracle + 脱壳域 |
| Reverse-chal | Cython 3.0.10 CPython 扩展;IDEA 变体(mod-65537 乘)+ SM4 S 盒 + 随机掩码诱饵门 | 30 min 解出(同题最快,首解 55 min) | 语义建模路径:识别算法族后重建分组密码求逆;flag 结论带 --program-accept 落账 |
| AegisTrace | pcap 三字段半字节隐信道 + 零引用置换表 + 自定义协议完整利用链 | 29 min / 169 步盲测解出 | 判例文件与全部答案要素脱敏移出后重测(对照组 20 min);golden 值首现于 oracle 命中输出,结论经原程序 8/8 次接受回执终审 |
同题三轮回放(Reverse-chal,2026-09-30)——每次失败都归因落地为机械修复,直到解出:
4ccec36c骨架弃用投降(121 min 无 flag)→ 落地四处修复:骨架使用闸 / 否定论断强制落账 / stop_check 带路径投降闸 /cone_invert.py锥形反推29bf99c0谎称「上下文将尽」投降(19 min 无 flag,实测 1M 窗口占用不足三成)→ 再落三处修复:矛盾分类判词 /--diff-symbolize输入字面量自动符号化 / 未收敛投降闸ddf11a8730 min 解出,两道机械闸门按设计拦截
持续硬化指标(多轮真题复盘 + 第三方对抗审计,happyVm / DEFCON26 quals 等):
- 伪码 fatal 误判基线 6.0% → 2.8%(尾调用甄别)
- 跳转表 / 栈帧 / 常量三类「手读 asm」高危动作全部脚本化
- 台账从 observe/conclude 扩展为 observe / conclude / anomaly / hypothesis / plan / stuck 六种对象——假设与枚举预算不再只活在聊天里
结构(1 底座 + 8 场景)
| 目录 | 职责 |
|---|---|
ghidra-core | 唯一放代码的底座:engine(ghidra-rpc + dsh 补丁)、rpc_driver.py 统一入口、doctor.py 环境自检、三道闸门 ledger.py / read_views.py / crypto_sanity.py、分析脚本层(decomp_lint 伪码体检 / jt_resolve 跳转表 / frame_map 栈帧 / const_audit 常量对照 / emulate_program 整程序仿真 / model_diff 模型对拍 / oracle_family 打桩因子隔离等,全部自包含可独立调用) |
re-triage | 未知二进制第一步:判型/语言/壳三信号交叉(节名 + magic + 结构),输出路线决策;foreign-arch ELF 路由(Ghidra processor 反编译优先,objdump 只核对单点) |
re-unpack | 脱壳 + 强制验证:UPX/ASPack/Themida/VMProtect/多层壳,PyInstaller 一条龙(pycdc 覆盖 Python ≥3.9) |
ghidra-static | 静态深挖:反编译/xref/标注/patch/交付;Go/Rust stripped 指纹、CTF 模式库(含 fp16 自检向量) |
vuln-audit | 漏洞模式 checklist:内存破坏/格式化串/整数溢出/命令注入等 8 类,可达性优先 |
re-dynamic | 跑起来看:函数级 Oracle(qiling)、打桩 oracle 家族(单因子隔离)、模型差分校验、跨架构 qemu-user/gdb-multiarch、Frida 时间/随机源 hook、Windows GUI 消息驱动 |
pwn-exploit | 从洞到 flag:pwn_triage 保护矩阵硬门、checksec 决策树、ROP/fmtstr/堆/FSOP/内核配方库(370KB 按需 grep)、pwntools 模板五件套、游戏/文字冒险题专章(references/game-pwn.md:经济溢出/数值墙路标/道具编辑堆原语);「本地通≠远程通」验证门强制远程回显落账 |
traffic-analysis | pcap 分诊、DNS/ICMP/时序隐信道、USB HID 还原、WPA/TLS 解密;脚本全零依赖 + tshark |
android-re | 纯 DEX APK:多 dex 启发式、jadx 四档反编译、Toast 锚点定位、真机 oracle、v1 重签 |
docs | 横向文档:smoke-tests.md(新脚本/新能力的最小冒烟判据——防"写了但永远不走")、legacy-plugin-pitfalls.md(旧插件坑归档)、cases/(真题判例归档,含完整题解,仅供写 smoke 判据时人工参考,不链回 skill) |
边界规则:执行代码在 core,场景 skill 只有方法论;知识存 references/ 可 grep 的纯数据文件,路由靠触发点指针,不建"知识库 skill"。
安装
- 作为 dsh Skill 市场安装:市场源填仓库地址 + git 引用
v0.9-market(收录版,不含尚在实测的 pwn-exploit;见 Release 页);手动安装走下面: - 九个目录拷到
~/.dsh/skills/(pwn-exploit / traffic-analysis / android-re 独立可选;pwn-exploit 的 exp 执行依赖 WSL 工具链,见 TOOLCHAIN.md) - 建引擎 venv(Python ≥ 3.11)并 editable 安装引擎:
python3.12 -m venv ~/ghidra-rpc-venv ~/ghidra-rpc-venv/Scripts/python.exe -m pip install -e ~/.dsh/skills/ghidra-core/engine/ghidra-rpc - 工具层见 TOOLCHAIN.md(Tier A/B/C 分级清单;已装状态以
doctor.pytoolchain 节为准) - 设
GHIDRA_INSTALL_DIR(Ghidra 12.x 安装目录)与JAVA_HOME(JDK 21+);可选DSH_GHIDRA_WS指定工作区 - 自检:
python ~/.dsh/skills/ghidra-core/scripts/doctor.py(全绿 exit 0)
Windows 注意:Ghidra 的 ProjectLocator 拒绝以 . 开头的路径元素,~/.dsh/... 不能直接传给 JVM——底座自动走 junction ~/dsh-ghidra-workspace。
用法(30 秒)
SK=~/.dsh/skills/ghidra-core/scripts
python "$SK/rpc_driver.py" ensure /path/to/binary # daemon 起停 + 导入分析(幂等)
python "$SK/rpc_driver.py" triage /path/to/binary # 一键分诊
python "$SK/rpc_driver.py" decompile /path/to/binary main # 反编译
python "$SK/rpc_driver.py" rename-function /path/to/binary FUN_00401000 check_flag
python "$SK/rpc_driver.py" version-track old.exe new.exe --changed-only
@绝对路径 作首个参数 = 完整 JSON 落盘;写操作即刻生效并自动存盘。完整命令清单见 ghidra-core/SKILL.md。
设计要点
- 常驻 daemon:JVM 只起一次,温热后每条命令亚秒级;长任务(load / version-track)走后台 +
@out落盘 - 机械闸门,不靠自觉:14 条铁律的执行载体是脚本——
ledger.py(同区回访强制--delta、结论写入即锁定、resolve缺证据 exit 2 的反向门、hypothesis/plan 落账、--kind model结论强制--anchorL2 左逆锚定实测、hypothesis 三态闭环 confirmed/killed/waived)、read_views.py(渲染文本 vs 真实字节对照)、crypto_sanity.py(求逆前后合法性检查),违规一律 exit 2 - 判定性实验优先:参数角色/因子参与度不靠调用约定猜——
oracle_family.py打桩隔离单因子(基线无输出自动抑制因果判词)、model_diff.py模型对拍输出分歧指纹(宽度级 16/32 位半块规律 + 字节级 nibble 规律 ⇒ 接口错不是算法错;宽度级命中绝不落"疑似算法错") - 验证独立性:结论强制独立来源,无则标 ⚠UNVERIFIED——Google P0 Naptime 的 Perfect Verification 原则
- 能力边界:动态调试外包 Frida/GDB/Qiling/angr;协作式项目不做(ghidra-core/SKILL.md §8)
准则强制层(dsh-hooks/,可选)
catalog 只注入 skill 的 description,SKILL.md 正文和铁律不在上下文里——"AI 不遵守 skill 准则"多源于此。dsh-hooks/ 用 dsh 内置的 hooks-claude-code 桥把关键纪律变成机械门:
- SessionStart/SubagentStart:会话创建即注入压缩版纪律卡(10 条,不依赖 agent 自觉读 SKILL.md)
- PreToolUse(Pwsh|Bash):
gate_sample.py对无台账样本的分析类直读(xxd/strings/objdump…)exit 2 阻断并给出流程指引(建台账后放行,pcap 修头等合法开局已豁免);gate_explore.py熔断 heredoc/cat 落盘式探索——angr 禁项(无帧槽位/仿真证据不许上符号执行)、Cython 前置、变体枚举熔断(直指 model_diff.py)、30min ≥25 次探索且零 stuck 强制落账;gate_longrun.py长任务强制落盘 - PreToolUse(Pwsh|Bash|Write|Edit|Read):
gate_stuck.py卡点自述熔断——会话日志近 45min 内自述卡住(强措辞 1 次/弱措辞 ≥2 条)而台账零 stuck → exit 2 强制落账(判例 b781ff3c:4 次自述零落账,两个半边事实 30min 未接线,38min 零 exploit);每 episode 只拦一次,无活跃台账不执勤 - PreToolUse(Write):
gate_churn.py拟合熔断——目录 24h ≥8 个 .py 且活跃台账零 stuck → 逼 stuck 落账或升级 z3/emulate - Stop:
stop_check.py收尾核对(默认启用,会话归属判定)——本会话台账有 observe 无下文 / flag 结论缺 program_accept / 存在 open hypothesis → deny 强制核对
安装:dsh-hooks/ 拷到 ~/.dsh/hooks/,在 profile 的 cordis.patch.yml 插入 hooks-claude-code 挂载条目(完整 YAML 与排障回滚见 dsh-hooks/README.md)。改动需重启 dsh 服务 + 新开会话生效。
许可与致谢
本仓库代码以 MIT 发布。衍生自以下来源,感谢原作者:
- Cellebrite Labs ghidra-rpc(MIT,执行引擎)
- zhaoxuya520/reverse-skill(MIT,方法论)
- wgpsec/AboutSecurity ctf-reverse 知识库
- Und3rf10w/ai-ghidra-tools(ghidra_scripts 脚本集,现为 legacy 冻结层)
- mukul975/Anthropic-Cybersecurity-Skills(Apache-2.0,Go/Rust/crypto 识别/JS 反调试知识片段)
- ljagiello/ctf-skills(MIT:ctf-forensics → traffic-analysis 配方;ctf-pwn → pwn-exploit 知识配方库 18 篇 + pwntools 模板 5 件)
- yaklang/hack-skills traffic-analysis-pcap(MIT,决策树骨架)
Comments
Loading…
Similar plugins
by noteflowai
Reuse Agent Skills across DeepSeek Harness and MCP. Check local SKILL.md files in the browser or CI, with parser diagnostics, file hashes and clear exit codes. Try the Hugging Face playground.
★ 6
↓ 1.5k/wk
MIT
TypeScript
Oct 10, 2026
dsh plugin --profile web add dsh-skills-anywhereby KLRSL
Agent config packer for DeepSeek Harness: pack local agent assets (skills/sessions/profiles/settings/memory) into a zip for migration or sharing, with privacy scanning, diff-based restore, pack manage
★ 3
MIT
JavaScript
Sep 20, 2026
dsh plugin --profile web add dsh-packerby icanfinish11
Bundles the 14 obra/superpowers skills for the DeepSeek Harness (dsh) from a recorded upstream tag (v6.3.0), re-syncable with drift reporting.
★ 0
NOASSERTION
JavaScript
Sep 13, 2026
dsh plugin --profile web add dsh-superpowersby antibrow
DeepSeek Harness plugin: give your agent a browser with a persistent identity - engine-level fingerprint spoofing, unlimited free local profiles, Android device emulation, passkeys that survive, and r
★ 10
MIT
JavaScript
Sep 12, 2026
dsh plugin --profile web add dsh-antibrowby DeLightor
Dependency-topology guard: pre-install conflict prediction and post-install detection of duplicate @deepseek-ai/dsh-* copies, version drift, and vendored core services that cause Symbol-key crashes li
★ 0
MIT
JavaScript
Aug 16, 2026
dsh plugin --profile web add dsh-depguardby february2015
TaskSwarm (蜂群) — DeepSeek Harness 上的多智能体任务编排插件:waves/lanes 并行执行、git worktree 隔离、任务包与跨模型评审、崩溃可恢复 | Multi-agent task orchestration for DeepSeek Harness: waves/lanes parallel execution, git worktree isol
★ 3
MIT
JavaScript
Aug 16, 2026
dsh plugin --profile web add dsh-taskswarm