PROJECT N° 03 · CTF TOOLKIT
CTF 乾坤袋
浏览器端 CTF 工具箱。
它是什么
§ 01一个跑在浏览器端的 CTF 工具箱,把比赛和研究中常用的工具收进一个袋子。
开源版只保留客户端工具。它不包含登录、邀请码、积分、管理后台、数据库或付费服务 —— 这些都不属于这个袋子要装的东西。
工具输入默认在浏览器本地处理。适合个人学习、比赛准备,以及在已获授权的安全测试场景中快速调用一组合手的小工具,而不用在各个在线网站之间来回粘贴。
- 形态
- 静态站点 / 客户端
- 运行
- 浏览器本地
- 登录
- 不需要
- 数据库
- 无
- 付费
- 无
- 服务端 API
- 开源版不提供
功能矩阵
§ 02 · 09 类编码与文本转换
Base 系列、URL、Hex、Unicode、HTML 实体等常见编码的互转与识别,配合智能编解码快速定位。
古典密码 · 哈希 · 密码学辅助
凯撒、维吉尼亚、栅栏等古典密码,常见哈希计算与识别,以及密钥格式、填充等辅助分析。
Web 与网络数据处理
请求参数、Cookie、JWT、HTTP 报文拆解,IP / 域名解析与网络数据可视化处理。
文件 · 二进制 · 隐写分析
文件头识别、Hex 查看、图片 / 音频隐写辅助、二进制结构拆解与 LSB 等常见隐写手法分析。
取证 · OSINT · PWN 与逆向辅助
内存/磁盘镜像线索提取、OSINT 信息整理、PWN payload 构造与逆向工程中的格式化、反汇编辅助。
搜索 · 分类 · 收藏 · 最近使用
工具搜索、按分类浏览、收藏常用工具、记录最近使用,把工具组织成顺手的工作台。
智能编解码
自动识别输入的编码类型并尝试解码,免去在多种编码间手动试探,快速还原可读文本。
多步骤操作链
把多个工具串成一条操作链,上一步的输出自动作为下一步输入,记录中间过程便于复盘。
内置说明与工具手册
每个工具附带使用说明和原理简述,把"工具怎么用"和"它为什么这么算"一起放进袋子。
安全边界
§ 03只面向已获授权的学习、比赛和安全测试。
乾坤袋里的工具本身没有攻击性,但 CTF 工具天然靠近安全研究的灰色地带。明确边界,是对工具和使用者双方的尊重。
开源版不提供服务端 API,也不会主动把工具输入发送到项目服务器。需要联网的工具会明确标注,默认情况下数据留在你自己的浏览器里。
- ✓个人学习与 CTF 比赛准备
- ✓已获书面授权的安全测试
- ✓课堂教学与研究演示
- ✓对自有系统与数据的分析
- ✕未经授权的对他人系统探测
- ✕任何违反当地法律法规的用途
本地运行
§ 04克隆仓库后,用两行命令就能把乾坤袋跑起来。开发服务器默认监听本地端口,工具在浏览器里即可使用。
建议使用 Node 稳定版本,首次拉取代码后用 npm ci 安装依赖,以保证与锁定版本一致。
# 安装依赖(按锁定版本) $ npm ci # 启动开发服务器 $ npm run dev VITE ready in 420 ms ➜ Local: http://127.0.0.1:5173/ ➜ Network: use --host to expose
开发服务器启动后,浏览器打开 http://127.0.0.1:5173/ 即可使用全部客户端工具。
构建与部署
§ 05# 生产构建,产物输出到 dist/ $ npm run build ✓ built in 1.8s dist/index.html 0.46 kB dist/assets/*.js 128.4 kB │ gzip: 41.2 kB dist/assets/*.css 18.7 kB │ gzip: 4.1 kB
dist/ 是一个纯静态目录,可直接交给 Nginx、GitHub Pages 或 Cloudflare Pages 托管,无需服务端运行时。
构建产物是一组静态文件,部署方式很灵活:
Nginx —— 把 dist/ 指向站点根目录,配置 SPA 回退即可。
GitHub Pages —— 仓库内已包含 GitHub Actions 工作流,推送后自动构建并发布到 Pages。
Cloudflare Pages —— 构建命令 npm run build,输出目录 dist,即可全球边缘分发。
因为开源版没有服务端 API,部署后即是完整可用的客户端工具箱。
- 静态托管
- Nginx / Caddy
- Pages 类
- GitHub Pages · Cloudflare Pages
- 运行时
- 无需(纯静态)
- SPA 回退
- 需配置 index.html
- GitHub Actions
- 已含 Pages 工作流
- 触发
- 推送主分支
- 产物
- 自动发布 dist/
- 环境
- Node 稳定版
添加工具
§ 06乾坤袋的工具是模块化的。所有工具代码位于 client/src/tools/,通过注册表 client/src/tools/registry.ts 统一登记。新增一个工具,本质上是写一个工具模块并在注册表里挂上它。
新增工具时,有几条约定需要遵守,它们共同维护"输入默认不离开浏览器"这条核心承诺:
- 01优先浏览器原生能力。能用 Web Crypto、File API、WebAssembly 完成的,尽量不引入额外依赖。
- 02默认不上传。工具输入默认在本地处理;确需联网时必须显式标注,并由用户主动触发。
- 03限制输入大小。对大文件/长文本设置合理上限,避免浏览器卡死或内存溢出。
- 04附带使用说明。每个工具应提供简短的手册与原理说明,放进内置文档体系。
- 05分类与可搜索。在注册表中填写分类、关键词,让工具能被搜索和收藏体系正确收录。
- 06无副作用。工具应保持纯函数式风格,不在全局留下未清理的状态或持久化敏感数据。
互动演示
§ DEMO · 模拟※ 以上为前端模拟演示,所有工具均在浏览器本地执行,不涉及网络请求。视觉风格与交互流程基于真实 CTF 乾坤袋应用还原。