eliainnocenti/cover-your-tracks

GitHub: eliainnocenti/cover-your-tracks

一款基于浏览器的互动严肃游戏,旨在教授数字取证中反取证技术的识别与分析。

Stars: 0 | Forks: 0

# 掩盖行踪 — 反取证检测实验室 ![polito-logo](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/6462068425103230.jpg) ## 概述 **掩盖行踪**是一款基于浏览器的交互式严肃游戏,旨在教导学生如何识别攻击者使用的反取证技术。玩家将扮演数字取证分析师的角色,通过模拟的取证工作站调查真实的犯罪场景。 每个场景都遵循一个结构化的学习循环: 1. **课前测验** — 评估对相关技术的基础知识 2. **调查** — 使用取证工具探索证据(文件系统、内存转储、网络日志) 3. **提交标志** — 识别并提交发现(篡改的文件、隐藏的进程、隐蔽信道) 4. **课后测验** — 在动手调查后确认理解程度 5. **总结回顾** — 回顾技术、现实世界工具和学习指标 ### 核心特性 - **基于场景的学习**:游玩涵盖文件系统、内存、网络和隐写术领域的 6 个不同场景。 - **精细化评估**:每个场景都包含 4 个问题的课前测验和课后测验,以准确衡量动手调查前后的知识差异(学习增益)。 - **取证实用工具**:使用模拟终端命令(`grep`、`file`、`stat`、`strings`、`xxd`)、十六进制查看器、内存进程分析器和网络数据包检查器来调查证据。 - **监管链**:每个操作(查看文件、运行命令、使用提示)都会记录在游戏结束时可见的不可更改的会话日志中。 - **交叉参考连接**:玩家可以将多个证据关联起来,以发现隐藏的叙事联系并获得奖励积分。 - **持久性排行榜**:已完成的场景会保存到本地存储,让玩家可以跟踪自己的进度、花费的时间,并争取更高的调查等级。 ### 场景 | # | 标题 | 领域 | 技术 | 难度 | |---|-------|--------|-----------|------------| | 01 | 时间戳篡改者 | 文件系统 | MAC 时间操作 (\$SI 与 \$FN) | ★★☆☆☆ | | 02 | 扇区里的幽灵 | 文件系统 | 松弛空间利用 | ★★☆☆☆ | | 03 | 机器中的幽灵 | RAM | DKOM rootkit / 进程隐藏 | ★★★☆☆ | | 04 | 低语的 DNS | 网络 | 用于数据泄露的 DNS 隧道 | ★★★☆☆ | | 05 | 隐藏于视线中 | 隐写术 | PNG 图像中的 LSB 隐写术 | ★★★★☆ | | 06 | 最后的抵抗 | 综合 | 多向量反取证(Boss 关卡) | ★★★★★ | ## 技术栈 - **React 18** — 基于组件的 UI - **Vite** — 快速开发服务器和构建工具 - **Tailwind CSS** — 实用工具优先的 CSS(布局层) - **自定义 CSS 设计系统** — 受 CRT 启发的取证终端美学 - **Lucide React** — 图标库 ## 快速开始 ### 前置条件 - [Node.js](https://nodejs.org/) ≥ 18 - npm ≥ 9 ### 安装 ``` # : git clone https://github.com/eliainnocenti/cover-your-tracks.git cd cover-your-tracks/app # - "Clone the repository" -> "克隆仓库" or "克隆代码库" npm install # - "Install dependencies" -> "安装依赖" or "安装依赖项" npm run dev ``` 应用程序将在 `http://localhost:5173/cover-your-tracks/`(或 `http://localhost:5173/`,取决于本地开发服务器绑定)可用。 ### 生产环境构建 ``` cd app npm run build npm run preview # Preview the production build locally ``` ### GitHub Pages 部署 仓库已预配置为自动部署到 GitHub Pages。要部署应用程序: ``` cd app npm run deploy ``` 这将自动触发构建流水线(`npm run build`)并将 `dist/` 下的生产包直接推送到你的 `gh-pages` 分支。 ## 项目结构 ``` app/ ├── index.html # Entry point ├── package.json # Dependencies and scripts ├── vite.config.js # Vite configuration ├── tailwind.config.js # Tailwind CSS configuration ├── postcss.config.js # PostCSS configuration └── src/ ├── main.jsx # React root ├── App.jsx # Game shell and phase router ├── styles/ │ └── index.css # Design system (CSS variables, CRT theme) ├── components/ │ └── game/ │ ├── ScenarioEngine.jsx # State machine (useReducer + Context) │ ├── Landing.jsx # Scenario selection screen │ ├── Leaderboard.jsx # Local storage high scores │ ├── EvidenceNavigator.jsx # File Explorer / Terminal / HEX / RAM / Network │ ├── InvestigatorNotebook.jsx # Evidence tagging and flag submission │ ├── CrossReference.jsx # Evidence connection linking mechanic │ ├── Quiz.jsx # Pre/Post quiz with explanations │ ├── ChainOfCustody.jsx # Investigation audit trail log │ └── Debrief.jsx # Learning assessment dashboard └── data/ └── scenarios/ ├── scenario_01_timestomper.json ├── scenario_02_slackspace.json ├── scenario_03_ram_injection.json ├── scenario_04_dns_tunnel.json ├── scenario_05_steganography.json └── scenario_06_boss_level.json ``` ## 游戏架构 游戏使用由 React 的 `useReducer` + Context API 驱动的**有限状态机**: ``` [Landing] → [Pre-Quiz] → [Investigation] → [Post-Quiz] → [Debrief] → [Complete] ``` ### 关键指标(供教师审查) | 指标 | 描述 | |--------|-------------| | `preQuizScore` | 基础知识 (%) | | `postQuizScore` | 游戏后的知识 (%) | | `knowledgeDelta` | 学习增益(后测 - 前测) | | `finalScore` | 调查质量(基础 100 + 标志奖励 - 惩罚) | | `hintsUsedCount` | 自主性指标 | | `wrongAttempts` | 有条理 vs. 猜测行为 | | `totalTimeSeconds` | 效率 | | `completionRate` | 彻底性(找到的标志 / 总数) | | `connectionsFound` | 跨领域关联发现的能力 | | `sessionLog` | 玩家操作的监管链审计跟踪 | ## 许可证 该项目作为都灵理工大学计算机取证与网络犯罪分析课程的一部分,为教育目的而开发。 ## 作者 | 姓名 | GitHub | LinkedIn | 邮箱 | | ---- | ------ | -------- | ----- | | Elia Innocenti | [![GitHub](https://img.shields.io/badge/GitHub-Profile-informational?logo=github)](https://github.com/eliainnocenti) | [![LinkedIn](https://img.shields.io/badge/LinkedIn-Profile-blue?logo=linkedin)](https://www.linkedin.com/in/eliainnocenti/) | [![Email](https://img.shields.io/badge/Email-Send-blue?logo=gmail)](mailto:elia.innocenti@studenti.polito.it) | *作为都灵理工大学计算机取证与网络犯罪分析课程的一部分而开发。*
标签:自定义脚本