Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/2233admin/reverse-skill-evolver/ghidra-reversenpx skills add 2233admin/reverse-skill-evolver --skill ghidra-reversegit clone --depth 1 https://github.com/2233admin/reverse-skill-evolverWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00179 | $0.03471 |
| Opus 5 | $0.00089 | $0.01736 |
| Sonnet 5 | $0.00036 | $0.00694 |
| Haiku 4.5 | $0.00018 | $0.00347 |
Grade A, and why
ghidra-reverse scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 190 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Ghidra 逆向分析技能(GhydraMCP)
来源与验证状态(必读)
来源:GhydraMCP 官方文档/README(https://github.com/starsong-consulting/GhydraMCP), 本仓库尚未实战验证,遇到新坑请补充到此文件。
本文档基于 2026-07-11 对 GhydraMCP 仓库(starsong-consulting/GhydraMCP,276 star,Apache 2.0,未
归档)README 和源码(bridge_mcp_hydra.py)的核实整理。本仓库目前没有一次真实逆向任务跑过这套工具
链。不像 ida-reverse 的"已知问题与反思"来自真机踩坑,这里列的都是文档/源码推断出的"可能坑",
请在第一次真实使用后回填本文件、补充真实踩坑记录。
这是什么
GhydraMCP(starsong-consulting/GhydraMCP)把 Ghidra 通过一个 HATEOAS REST API 插件 + Python MCP
桥接脚本(bridge_mcp_hydra.py)+ 独立 CLI(ghydra)暴露给 AI 助手。它 fork 自
LaurieWired/GhidraMCP,新增了多实例支持、数据操作能力和 HATEOAS REST API。支持 Ghidra 11.x 和
12.x(两个版本分开打包 release,插件 ghidraVersion 必须和实际 Ghidra 版本精确匹配)。
官方 README 把 MCP 桥接层标注为"deprecating in favor of CLI"—— 独立 CLI ghydra 是更新、更推荐
的用法(同等能力 + 更好的输出格式化 + --json 模式),但桥接脚本仍可用,是否切换不是本文档要决
定的事,先如实记录两条路径都存在。
端口配置存疑(请在首次真机验证时确认)
.kiro/settings/mcp.json 里已有这一条注册(此前完全没有文档说明,属于"已经接入但未被记录"的状态):
"ghidra": {
"url": "http://localhost:8765/mcp"
}
kali/mcp-kali-example.json 也有对应条目(见该文件 ghidra 键)。但根据 GhydraMCP 官方 README
和 bridge_mcp_hydra.py 源码核实(2026-07-11 用 gh api 拉取 README 全文 + 用 GitHub code search
搜 8765/streamable 均零命中 + 直接 grep 源码得到下面两行):
bridge_mcp_hydra.py:31: DEFAULT_GHIDRA_PORT = 8192
bridge_mcp_hydra.py:4261: mcp.run(transport="stdio")
也就是说:
- 官方桥接脚本固定走 stdio 传输,不是 HTTP/
url形式的 MCP 端点 - Ghidra 插件本身监听的默认端口是 8192(第一个打开的 CodeBrowser 用 8192,后续每开一个递增, 多实例范围 8192-8447),不是 8765
- 官方文档/源码全文搜不到任何 "8765" 的引用
http://localhost:8765/mcp 这个配置,既不匹配 GhydraMCP 文档化的 Ghidra 实例端口范围(8192 起),
也不匹配它的 MCP 传输方式(stdio,不是 HTTP url)。可能的解释(未核实,按可能性排列):
- 有人在这台机器上手动跑了一个自定义 HTTP wrapper,把 stdio 桥接转成 HTTP,监听在 8765
- 这条配置指向的其实是另一个同类 Ghidra-MCP 项目(不是
starsong-consulting/GhydraMCP) - 这条配置是占位/未验证,从未真正连通过
首次真机验证此技能时,请先确认 .kiro/settings/mcp.json 里这条 ghidra 到底连的是什么进程;连
不通就改用下面的官方 stdio 配置。
标准配置(官方 README,stdio 方式)
{
"mcpServers": {
"ghydra": {
"command": "uv",
"args": ["run", "/ABSOLUTE_PATH_TO/bridge_mcp_hydra.py"],
"env": { "GHIDRA_HYDRA_HOST": "localhost" }
}
}
}
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 190 lines · 179 tokens per session scan A 917db0b9fbe3
ghidra-reverse is a skill published in the GitHub repository 2233admin/reverse-skill-evolver (13 stars, last pushed 21d ago), licensed MIT. It adds 179 tokens to every session and 3,471 once invoked, about $0.0009 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
babysit-pr
Babysit a GitHub pull request after creation by continuously polling review comments, CI checks/workflow runs, and mergeability state until the PR is merged/closed or user help is required. Diagnose failures, retry likely flaky failures up to 3 times, auto-fix/push branch-related issues when appropriate, and keep…
imagegen
Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output…
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…
next-cache-components-optimizer
Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route at a time; the shipped test then…