free-eng-code/Data-Recovery-tool
GitHub: free-eng-code/Data-Recovery-tool
一款支持多文件系统的位级数据恢复与深度磁盘取证工具,通过 MFT 扫描和文件雕刻技术从磁盘中恢复已删除或丢失的文件并保留完整目录结构。
Stars: 0 | Forks: 0
# DataForge 恢复
支持深度磁盘取证的位级数据恢复工具。
## 功能
- 对物理驱动器和分区进行位级深度扫描
- 支持 NTFS, FAT12/16/32, exFAT, ext2/3/4, HFS+, UFS, ISO9660
- 显示已删除/丢失文件的完整文件夹结构,包含日期和大小
- 选择性恢复 — 可选择文件、文件夹或整个目录树
- 目标目录选择器,支持保留文件夹结构
- 实时扫描进度和恢复统计
- 文件扩展名过滤 — 仅恢复特定文件类型(例如 `.jpg .docx`)
- 目录范围扫描 — 扫描特定文件夹而非整个分区
- 扫描大小限制 — 限制大型驱动器的扫描上限
- 文件雕刻 (File carving) — 使用涵盖 82 种文件类型的 146 种签名模式从未分配空间恢复文件
- 冲突解决 — 当目标位置已存在恢复的文件时,可选择替换、跳过或保留两者
- 会话保存/恢复 — 从之前的扫描继续,无需重新扫描
## 安装说明 (EXE — 推荐大多数用户使用)
无需 Python 或其他依赖项。下载后直接运行即可。
预构建的 EXE 文件已包含在此代码库的 [`dist/DataForge Recovery/`](dist/DataForge%20Recovery/) 目录中。
1. 克隆或下载此代码库
2. 导航到 `dist/DataForge Recovery/` 文件夹
3. 双击 **`DataForge Recovery.exe`**
4. Windows 将请求管理员权限 — 点击 **是**(原始磁盘访问需要此权限)
## 开发设置 (面向贡献者)
如果您想要增强、修改或为此项目做出贡献,请按照以下步骤操作。
### 前置条件
- **Windows 10/11**
- **Python 3.10+**(推荐 3.12)
- **Visual Studio 2022 Build Tools** — 从源码编译 `pytsk3` 所必需
choco install visualstudio2022-workload-vctools
### 1. 克隆代码库
```
git clone https://github.com/your-username/Data-Recovery-tool.git
cd Data-Recovery-tool
```
### 2. 创建虚拟环境
```
python -m venv .venv
.venv\Scripts\activate
```
### 3. 安装依赖
```
pip install -e ".[dev]"
```
这将安装所有运行时依赖项(`pytsk3`, `PySide6`, `pywin32`)以及开发工具(`pytest`, `pyinstaller`)。
### 4. 运行应用程序
```
# 选项 A:使用 auto-elevation 运行 (请求 admin)
python -m src.main
# 选项 B:在不出现 elevation 提示的情况下运行 (volume 扫描仍然有效)
python -m src.main --no-elevate
# 选项 C:直接通过 PowerShell 以 elevated 权限运行
Start-Process -FilePath ".venv\Scripts\python.exe" -ArgumentList "-m src.main --no-elevate" -Verb RunAs
```
### 5. 构建 EXE
```
.venv\Scripts\pyinstaller.exe dataforge.spec --noconfirm
```
输出结果将位于 `dist\DataForge Recovery\` 目录中。您可以将此文件夹压缩以便分发。
## 项目结构
```
src/
├── main.py # Application entry point
├── core/
│ ├── disk.py # Drive enumeration, volume listing
│ ├── models.py # Data models (DiskInfo, RecoveredEntry, etc.)
│ ├── scanner.py # pytsk3-based MFT/inode scanner
│ ├── win_scanner.py # Native Windows volume scanner
│ ├── recovery.py # File recovery engine with conflict handling
│ ├── carver.py # File carver for unallocated space
│ ├── signatures.py # 146 file signatures for carving
│ └── session.py # Scan session save/load
├── gui/
│ ├── main_window.py # Main window with navigation
│ ├── disk_selector.py # Drive/partition selection page
│ ├── scan_progress.py # Scan progress with phase indicators
│ ├── tree_view.py # File tree browser with checkboxes
│ └── recovery_dialog.py # Recovery destination and progress
└── utils/
├── admin.py # Admin privilege helpers
├── formatting.py # Size/duration formatting
└── logging_setup.py # Logging configuration
```
## 技术栈
- **pytsk3** — The Sleuth Kit 的 Python 绑定(取证引擎)
- **PySide6** — Qt 6 GUI 框架
- **pywin32** — Windows 原始磁盘访问
- **PyInstaller** — EXE 打包
## 贡献指南
1. Fork 此代码库
2. 创建一个功能分支 (`git checkout -b feature/my-feature`)
3. 进行修改
4. 运行测试:`pytest`
5. 提交并推送
6. 发起 Pull Request
## 许可证
本项目按原样提供,仅用于教育和数据恢复目的。
标签:CIDR输入, exFAT, ext4, FAT32, HFS+, HTTP工具, MFT扫描, NTFS恢复, RAW磁盘访问, Windows工具, 位级扫描, 删除文件恢复, 存储介质取证, 库, 应急响应, 底层磁盘分析, 数字取证, 数字取证工具, 数据 carving, 数据取证, 数据恢复, 文件系统, 文件雕刻, 未分配空间恢复, 格式化恢复, 漏洞挖掘, 目录结构恢复, 磁盘取证, 系统工具, 自动化脚本, 身份验证滥用, 逆向工具