dincertekin/reclaimer
GitHub: dincertekin/reclaimer
一款基于 Rust 的文件恢复与取证工具,通过解析 NTFS MFT 和文件特征码扫描从磁盘映像及物理驱动器中恢复已删除的文件。
Stars: 0 | Forks: 0
# Reclaimer
一个使用 Rust 编写的跨平台文件恢复工具。Reclaimer 会扫描原始磁盘映像和物理驱动器,以查找并恢复已删除的文件,即使在清空回收站后也能恢复。
## 目标
- 从 Windows NTFS 驱动器恢复已删除的照片和视频
- 扫描原始磁盘映像(`.img`、`.dd`)进行取证实践
- 解析 NTFS 主文件表 (MFT) 以查找已删除的文件条目
- 使用文件特征码扫描(carving)来恢复元数据已丢失的文件
- 为非技术用户提供简单的 GUI
## 计划功能
- [x] 原始磁盘映像读取(逐扇区)
- [ ] NTFS MFT 解析
- [ ] 文件特征码提取(JPEG、PNG、MP4 等)
- [ ] 带有元数据(名称、大小、日期)的已删除文件列表
- [ ] 将文件恢复到选定的输出文件夹
- [ ] 使用 egui 构建的简单 GUI
- [ ] 在 Windows 上进行物理驱动器扫描 (`\\.\C:`)
## 工作原理
当文件被删除时,操作系统会将其空间标记为可用,但不会立即覆盖数据。Reclaimer 通过两种方式工作:
1. **MFT 解析。** 在 NTFS 驱动器上,文件元数据存储在称为主文件表的结构中。已删除的条目会被标记,但通常仍然可读。Reclaimer 直接读取 MFT 来查找这些条目。
2. **File Carving。** 即使 MFT 条目已丢失,文件数据可能仍存在于磁盘上。Reclaimer 会扫描原始字节以查找已知的文件特征码(magic bytes),从而定位可恢复的文件。
## 支持的文件系统
| 文件系统 | 状态 |
| ----------- | ------- |
| NTFS | 计划中 |
| FAT32/exFAT | 未来计划 |
| ext4 | 未来计划 |
## 快速开始
### 前置条件
- Rust(通过 [rustup](https://rustup.rs) 安装)
- Windows(用于物理驱动器扫描)
- 用于测试的原始磁盘映像(`.img` 或 `.dd`)
### 构建
```
git clone https://github.com/dincertekin/reclaimer
cd reclaimer
cargo build
```
### 运行
```
cargo run
```
## 项目结构
```
src/
├── main.rs # Entry point
├── disk/ # Raw disk and image reading
├── scanner/ # File signature carving
├── ntfs/ # NTFS MFT parsing
└── ui/ # GUI (egui)
```
## 学习目标
该项目也是我个人学习 Rust 的练习。代码将清晰度和正确性置于速度之上。编写注释和文档不仅是为了解释代码的功能,还为了说明其背后的原因。
## 免责声明
Reclaimer 仅用于合法的数据恢复和取证学习目的。请务必将文件恢复到单独的驱动器,切勿恢复到源驱动器,以避免覆盖您试图恢复的数据。
## 许可证
MIT License,详情请参阅 [LICENSE](./LICENSE)。
标签:HTTP工具, NTFS, Rust, 可视化界面, 数字取证, 数据恢复, 文件系统, 文件雕刻, 网络流量审计, 自动化脚本, 通知系统