安装与仓库结构
安装与仓库结构
理解 ctf-skills,先看它怎么安装,再看它的仓库怎么组织。
安装决定 Agent 如何加载这些 Skill;仓库结构决定你如何找到某个方向的说明。
安装方式
原项目 README 给出的安装命令是:
npx skills add ljagiello/ctf-skills这个命令的含义是:从 GitHub 上添加 ljagiello/ctf-skills 这个 Skill 集合。
如果工具支持只添加某个子目录,也可以按单个 Skill 引用,例如:
npx skills add ljagiello/ctf-skills/ctf-web具体能不能这样用,取决于你使用的 Agent Skills 工具链。
提示
这里的安装不是安装 CTF 工具,而是安装 Agent Skill。gdb、binwalk、zsteg 这类工具要另外准备。
工具环境准备
原项目提供了脚本:
scripts/install_ctf_tools.shREADME 中列出的常见用法包括:
bash scripts/install_ctf_tools.sh all
bash scripts/install_ctf_tools.sh --dry-run all
bash scripts/install_ctf_tools.sh --verify也可以按分组安装:
bash scripts/install_ctf_tools.sh python
bash scripts/install_ctf_tools.sh apt
bash scripts/install_ctf_tools.sh brew
bash scripts/install_ctf_tools.sh gems
bash scripts/install_ctf_tools.sh go
bash scripts/install_ctf_tools.sh manual--dry-run 用来预览会安装什么,--verify 用来检查环境是否满足要求。
为什么工具安装和 Skill 安装分开
Skill 是说明书,工具是执行能力。
装了 Skill,只是让 Agent 知道“遇到某类题该怎么做”。但如果系统里没有对应工具,Agent 仍然无法完成实际分析。
比如:
| Skill | 可能需要的工具 |
|---|---|
ctf-pwn | checksec、gdb、pwntools |
ctf-forensics | binwalk、foremost、volatility |
ctf-web | HTTP 客户端、浏览器、代理工具 |
ctf-crypto | Python、SageMath、数学库 |
所以比赛前准备环境,比赛中按需加载 Skill,是更合理的方式。
仓库顶层结构
原仓库大致结构如下:
ctf-skills/
├─ README.md
├─ solve-challenge/
├─ ctf-web/
├─ ctf-pwn/
├─ ctf-crypto/
├─ ctf-reverse/
├─ ctf-forensics/
├─ ctf-osint/
├─ ctf-malware/
├─ ctf-misc/
├─ ctf-ai-ml/
├─ ctf-writeup/
├─ scripts/
├─ tests/
├─ pyproject.toml
└─ SECURITY.md每个 Skill 目录里通常都有 SKILL.md,有的目录还包含大量专题补充文件。
SKILL.md 和补充文件
SKILL.md 是入口。Agent 先读它,了解这个 Skill 的定位、工具、第一轮流程和路由提示。
补充文件负责承载更细分的内容。例如 ctf-web 下会有 SQL 注入、服务端漏洞、客户端漏洞、认证相关、Web3 等文件;ctf-pwn 下会有栈、ROP、堆、格式化字符串等文件。
这种结构可以避免一个 SKILL.md 过长,同时让 Agent 在需要时进入对应细分内容。
tests 的意义
仓库包含测试目录,说明这个项目把 Skill 当成可维护资产,而不是随便堆文档。
测试通常用于检查:
- frontmatter 是否正确
- Skill 引用是否存在
- 安全规则是否符合预期
- 目录结构是否可解析
这对 Agent Skill 项目很重要,因为一个字段写错,可能影响 Agent 是否能加载或正确选择 Skill。
读仓库时看什么
第一次读这个仓库,不建议从某个巨大补充文件开始。更好的顺序是:
- 读根目录
README.md,了解项目定位和安装方式。 - 读
solve-challenge/SKILL.md,理解入口路由。 - 选择一个方向,读对应
ctf-*/SKILL.md。 - 再根据 Skill 的索引去看补充文件。
- 最后读
ctf-writeup/SKILL.md,理解输出格式。
小结
ctf-skills 的安装分两层:Skill 加载和工具准备。仓库结构也分两层:入口调度和方向 Skill。理解这两层后,你再看每个技能包,就不会把它误读成普通 CTF 教程。