一份为「一个人也能打完全程」设计的 16 周教材:三个方向共用同一套底座技能,按阶段轮转主攻,每周有明确的学、练、交、验。
全系列共 8 篇,本页是总览与目录。
先说清楚:能给你什么、不能给你什么
能给你(约 120 小时 = 16 周 × 7.5 小时):
- 一张完整地图:三方向各有什么题型/玩法、底层技能如何互相借用。
- 三条线都走到入门偏中:能独立解 CTF 的 misc/隐写/取证/古典密码/入门 OSINT;能单人完成一个小型 Puzzle Hunt;能拆解经典 ARG 的线索链并设计 mini 版。
- 一套能自己往前走的习惯:判断编码、写脚本、写复盘、卡住时怎么升级。
不能给你(诚实边界):
- 「全面」=每条线都学到专家级,在 120 小时里不可能。真正的全面需要之后 1–2 年的专项投入。
- 打 CTF 拿名次、啃下 pwn/kernel、独立破解现代密码学,这些不在本路径范围内(见下文「不覆盖清单」)。
- 保证 16 周按时完成。课业和日语课会挤时间,所以日程标了 ★/☆ 两档。
这套教材为谁写的
| 情况 | 教材里的对应 |
|---|---|
| 计科大一生,课业与日语(零基础)占时间 | 每周上限 5–10 小时;★/☆ 双轨 + 停摆周机制 |
| 命令行有点基础,Python 不熟 | 第 1–2 周集中补「够用版」Python,之后边做题边补 |
| 解谜仅停留在「玩过解谜游戏」 | 从题型识别与提取两个最小技能切入,不预设谜题背景 |
| Windows + 已有 WSL2 | 工具链以 WSL2 为主线,网页版工具优先 |
| 英文较弱但知道英文资源更好 | 中文导读 + 术语表 + 逐段翻译工作流,不做整站翻译 |
| 想单人挑战,也不排斥线上比赛 | 练习阶梯全部标 [S]/[T]/[R],主线只保留 solo 项 |
使用规则(只有四条)
- 一周一页:每周只打开当周模块,不用通读全部教材。
- 先做题再补理论:每个知识点的入口都是一道题;理论只在卡住时回查。
- 每周交一份东西:速记 writeup 也算,空周不算完成。
- 掉队就只做 ★:☆ 周可以整周跳过,不影响闭环。
三线共享技能底座
ARG、CTF、Puzzle Hunt 表面是三件事,实际 70% 底层能力重合。底座打通后,三条线只是应用场景不同。
| 底座能力 | CTF 里 | Puzzle Hunt 里 | ARG 里 |
|---|---|---|---|
| 命令行与脚本化 | file/strings/binwalk 流水线 |
批量试词、生成候选 | 抓页面、批量验证 |
| Python 够用版 | 解码、爆破、写 solver | 提取答案、枚举 | 批量请求、频次统计 |
| 编码与数制 | base64/hex/URL/Unicode/摩斯 | 同上,更偏「藏」 | 藏在网页/文件名里 |
| 文本变换与古典密码 | ROT/Vigenère/替换/换位 | 词谜、枚举、答案格式 | 隐藏口令 |
| 文件与载体分析 | 图片/音频/压缩包/流量 | 图片题、网格题 | 频谱、视频帧、元数据 |
| 检索与信息收集 | OSINT、whois、快照 | 查工具、查变体 | 跨媒介溯源 |
| 结构与提取 | 题型识别、答案格式 | 核心:extraction | 线索链与兔子洞设计 |
| 叙事与推理 | 题干暗示 | 题面文字本身是线索 | 剧情推进 |
16 周日程
不做三条平行进度条,而是每阶段一个主模块,其余两线每周 1–1.5 小时保温:
- W1–2 基础底座(三线共用)
- W3–6 CTF 主攻(60%)+ Puzzle Hunt 保温(20%)+ 底座复习(20%)
- W7–9 Puzzle Hunt 主攻(60%)+ CTF 保温(20%)+ 底座复习(20%)
- W10–12 ARG 主攻(60%)+ CTF 保温(20%)+ Puzzle Hunt 保温(20%)
- W13–16 单飞综合:比赛 / 档案 / 创作
为什么是这个顺序:CTF 在前,因为它的工具链(命令行、编码、文件分析)是另两线的底座;Puzzle Hunt 在中,核心是「结构 + 提取」,需要先有工具手感;ARG 在后,几乎要用到前面全部技能。
标记含义:★ 必需(8 周构成可独立闭环);☆ 加成(掉队时可整周跳过);[S] 单人可完成;[T] 需队友;[R] 需靶机/服务器。
| 周 | 标记 | 主模块 | 主题 | 交付物 |
|---|---|---|---|---|
| W1 | ★ | 基础 | 环境打通 + CyberChef + Bandit 0–5 + 第一题(免注册) | 第一份 writeup |
| W2 | ★ | 基础 | Python 够用速成 + 编码数制 + 位运算 | 10 道编码自测 + 2 个脚本 |
| W3 | ★ | CTF | Misc + 文件/隐写 I | 8 题 writeup |
| W4 | ☆ | CTF | 隐写 II(音频/图像) | 6 题 + 音频笔记 |
| W5 | ★ | CTF | 取证入门 + 古典密码 | 10 题 writeup |
| W6 | ☆ | CTF | OSINT + 入门 Web + 限时 3h 小赛 | 小赛复盘 |
| W7 | ★ | PH | Puzzle Hunt 结构学 + 提取 | 题型分类笔记 |
| W8 | ★ | PH | 独立完成一个小型 hunt(3–4h) | hunt 复盘 |
| W9 | ☆ | PH | meta 与出题:改一道题 | 1 道改写题 |
| W10 | ★ | ARG | ARG 解剖 + 2 个案例精读 | 线索链拆解图 |
| W11 | ☆ | ARG | 跨媒介提取实操 | 4 项小任务 |
| W12 | ☆ | 综合 | 三线合流 mini 挑战创作 | mini 挑战成品 |
| W13 | ★ | 单飞 | 线上 CTF(solo)+ 完整复盘 | 比赛 writeup |
| W14 | ☆ | 单飞 | PH 档案 6h 限时 | 档案复盘 |
| W15 | ☆ | 单飞 | 出 2 道题 + 小 ARG 框架 | 自出题 |
| W16 | ☆ | 单飞 | 结业自评 + 下一阶段规划 | 结业自评表 |
横向插入:W2 与 W10 各安排一次 30 分钟 ARG 案例速览,把 ARG 的品味提前养起来,不占大块。
★ 最小闭环(8 周):W1 → W2 → W3 → W5 → W7 → W8 → W10 → W13。做完这 8 周,你已经走完「底座 → CTF 入门 → PH 完整一篇 → ARG 认知 → 真实比赛」的整圈。
每周固定节奏与硬约束
| 动作 | 时长 | 做什么 |
|---|---|---|
| 学 | 2–3h | 读当周模块对应小节 + 一个最小示例 |
| 练 | 3–5h | 做当周练习阶梯;卡住按三级升级策略处理 |
| 复盘 | 1h | 写当周交付物;更新打卡表;往错题本记 1 条 |
- 每周最多引入 3 个新工具;
- 同一题卡 90 分钟必须升级(自查 → 官方提示 → 看 writeup 后重做 → 归档超纲);
- 每周 20 分钟回看:翻错题本新增条目 + 重做上周 1 道题;
- 连续停摆 3 周 → 只保留 ★ 周,16 周变 8 周闭环。
本路径明确不覆盖
以下内容不在 16 周范围内,遇到就记下来、跳过,不要拿它评估自己:
| 不覆盖 | 为什么 | 什么时候再回来 |
|---|---|---|
| pwn(栈/堆利用、ROP、kernel) | 需要大量调试时间与专门环境 | 第二年,或学完「系统安全」课之后 |
| 高级 Web(复杂逻辑漏洞、云安全、SSRF 链) | 需要靶场与长期经验积累 | 学完 Web 安全基础课之后 |
| 密码学深水区(格攻击、ECC 深层、ZKP) | 数学门槛高 | 有兴趣时从 CryptoHack 的 Modular/Public-Key 课程切入 |
| 大型逆向(VMP、恶意代码分析) | 需要长期工具训练 | 有明确方向后 |
| 硬件/IoT/无线电 | 需要设备 | 不计划 |
碰到这些题的唯一正确动作:标记「超纲」→ 跳过 → 记进错题本。
资料补给机制
中文的 Puzzle Hunt 与 ARG 资料明显少于英文,遇到缺口时:
- 我把缺口列成清单;
- 你提供链接、PDF 或书目,我负责核验可用性 → 写 3 句中文导读 → 并入对应模块;
- 发现失效链接,我登记并给替代。
系列目录
| 篇 | 主题 |
|---|---|
| 总览 | 本页 |
| 00 学习法与复盘 | 三级卡关升级、writeup 两档、错题本、英文消化、求助渠道 |
| 01 基础底座 | 环境、Python 够用版、编码数制、古典密码、数学工具箱 |
| 02 CTF 路线 | 单人可玩性分级、七类题型标准动作、单人比赛策略 |
| 03 Puzzle Hunt | 结构学、12 种提取法、meta、出题入门 |
| 04 ARG 解剖 | 三特征、线索链、6 个案例、跨媒介复刻、自建 mini ARG |
| 05 工具与资源 | 已核验资源清单、分周安装、中英日术语表 |
| 06 进度追踪 | 打卡表、4 个里程碑、复盘模板、结业自评 |
第 1 天怎么开始(免注册,60–90 分钟)
- 确认 WSL2:Windows 终端执行
wsl -l -v,看到 Ubuntu 且VERSION为 2 即可。 - 进 Linux:执行
wsl,再执行python3 --version。 - 建工作区:
mkdir -p ~/ctf/{notes,writeups,work,tools}。 - 网页版 CyberChef:打开 CyberChef,把
aGVsbG8=粘进 Input,右侧选From Base64,确认输出hello。 - 零注册实战:
ssh bandit0@bandit.labs.overthewire.org -p 2220(密码bandit0),依次过 Bandit 0→5。 - 写第一份 writeup:5 行即可,存
~/ctf/writeups/w1-bandit.md。
完成标准:能说出「CyberChef 里我做了什么变换」+「Bandit 每关卡在哪一步、怎么过的」。