SecurityRonin/vsc-forensic
GitHub: SecurityRonin/vsc-forensic
该项目是一个基于 Rust 的 Windows 卷影副本取证库,旨在读取和分析 VSS 快照存储结构以支持跨时间点的文件系统状态差异比对与异常检测。
Stars: 0 | Forks: 0
# vsc-forensic
[](LICENSE)
[](https://github.com/sponsors/h4x0r)
**针对 Rust 的 Windows Volume Shadow Copy (VSS) 取证 —— 一个不会 panic 的 shadow-copy 存储/目录结构读取器,以及一个分级异常分析器,能将每个 NTFS 快照转化为可跨时间 diff 的证据。**
**状态:** 早期脚手架 —— 格式研究已完成(参见 [docs/RESEARCH.md](docs/RESEARCH.md)),解析器正在建设中。
VSS 是 Windows 在 `System Volume Information` 下保留 NTFS 卷时间点快照的方式:每个 shadow copy 都会保存即将发生更改的数据块,因此活动卷加上 VSS 存储共同编码了文件系统过去状态的时间队列。`vsc-forensic` 是计划中的取证工具矩阵的 `[P^H]` 磁盘历史成员 —— 它将按快照浏览该 VSS 区域,枚举存储目录及其块列表,并将 shadow-copy 时间线和完整性异常作为矩阵发现展示出来。
## 双 crate 拆分
遵循工具矩阵读取器/分析器标准,工作区将发布两个 crate:
| Crate | 角色 | 依赖于 | 输出 |
|---|---|---|---|
| `vsc-core` | 读取器 / 解码器 | `thiserror` | 类型化 VSS 目录 / 存储 / 块记录 |
| `vsc-forensic` | 异常分析器 | `vsc-core`, `forensicnomicon` | 分级的 [`forensicnomicon::report::Finding`](https://crates.io/crates/forensicnomicon)s |
读取器保持纯粹 —— 它只解码字节,不做任何判断。所有的*取证含义*都存在于分析器中,这是一个对已解码记录无副作用的函数。这种分离使得 `vsc-core` 能够独立发挥作用,也使得 `vsc-forensic` 可以直接作为矩阵 `Report` 插入到其他所有分析器旁边。
目前这两个 crate 都仅是用于文档的存根;尚未导出任何公开 API。
## 路线图
| 阶段 | 状态 |
|---|---|
| 格式研究(VSS 目录/存储/块布局) | ✅ 已完成 — [docs/RESEARCH.md](docs/RESEARCH.md) |
| `vsc-core` — VSS 卷头 + 目录枚举 | 计划中 |
| `vsc-core` — 存储 + 块列表解码,快照视图 | 计划中 |
| `vsc-forensic` — 异常审计器(`VSC-*` 发现) | 计划中 |
| Fuzz 目标 + 真实 VSS 镜像验证(对比 `libvshadow`) | 计划中 |
## 按照工具矩阵标准构建
即使作为脚手架,该工作区也已强制执行工具矩阵的强化契约:两个 crate 全面使用 `#![forbid(unsafe_code)]`,应用 Paranoid-Gatekeeper clippy 集合(禁用 `unwrap_used`/`expect_used`,开启严格警告),`cargo-deny` 供应链门控,以及 100% 行覆盖率的 CI 门控。随着解析器的落地,它将进行边界检查、Fuzz 测试,并使用独立的预言机对照真实的 VSS 镜像进行验证。
## 文档
精选文档站点使用 MkDocs 构建,并由 GitHub Pages 提供服务。请参阅 [docs/RESEARCH.md](docs/RESEARCH.md) 了解指导设计的 VSS 格式研究。
[隐私政策](https://securityronin.github.io/vsc-forensic/privacy/) · [服务条款](https://securityronin.github.io/vsc-forensic/terms/) · © 2026 Security Ronin Ltd
标签:Rust, Windows VSS, 可视化界面, 开源库, 搜索引擎爬虫, 数字取证, 网络流量审计, 自动化脚本, 通知系统