S-hub001/MBR-Integrity-Verifier-and-Recovery-Tool-DFSemProject
GitHub: S-hub001/MBR-Integrity-Verifier-and-Recovery-Tool-DFSemProject
基于 Python 的数字取证工具,用于从取证镜像和活动物理磁盘中读取、解析、验证和恢复 MBR 与 GPT 引导数据。
Stars: 0 | Forks: 1
# MBR 完整性验证与恢复工具
一个基于 Python 的数字取证实用程序,用于读取、验证、解析和恢复来自取证磁盘镜像和活动物理磁盘的主引导记录 (MBR) 和 GPT 数据。
## 1. 工具概述
此工具提供对取证调查中至关重要的磁盘结构(包括主引导记录 (MBR)、主 GPT 头和备份 GPT 头)的原始扇区级别访问。
该系统是模块化的:
\
**磁盘读取模块** 处理底层磁盘访问。
\
**MBR 和 GPT 解析模块** 从原始字节中提取结构化的取证信息。
\
**完整性与恢复模块** 验证并还原被修改的引导结构。
\
**GUI 和报告模块** 提供可视化和报告生成功能。
磁盘读取模块 (`core/disk_reader.py`) 构成了系统的基础。它从以下位置读取 512 字节的扇区:
- 取证镜像 (`.dd`、`.img`、分卷 `.001`–`.00N`)
- 活动物理磁盘 (Windows `\\\\.\\PhysicalDriveN`)
分卷取证镜像格式会被自动检测并在内存中重新组装。所有功能均严格遵守取证规则:
## 2. 安装说明
**第一步 — 安装 Python 3.10 或更高版本**
请从 [https://www.python.org/downloads/](https://www.python.org/downloads/) 下载并启用 “Add to PATH”。
验证安装:
```
python --version
```
**第二步 — 项目结构**
```
DFProject/
├── core/
│ ├── disk_reader.py
│ ├── mbr_parser.py
│ ├── gpt_parser.py
├── images/
│ │ ├── mbr_test.vhd
│ │ ├── gpt_test.vhd
│ │ └── README_IMAGES.txt
├── tests/
│ ├── test_disk_reader.py
│ └── test_run_parser.py
└── main.py `
```
**第三步 — 加载取证镜像或 VHD 磁盘**
**重要提示**:将所有 `.001` 镜像片段或已挂载的 VHD 磁盘文件放入 `images/` 目录中。
**第四步 — 无需外部库**
仅使用 Python 标准库。
## 3. 依赖项和前置条件
无需外部依赖项。它完全依赖以下预先安装在 Python 中的标准库模块:
- `os` — 文件路径解析和大小计算
- `sys` — 活动磁盘访问的平台检测
- `glob` — 分段文件发现
- `struct` — 为二进制解析扩展保留
**系统要求:**
- Python 3.10+
- Windows(用于活动磁盘访问)
- 管理员权限(仅用于 PhysicalDrive 访问)
## 4. 执行步骤
**运行测试套件(建议的第一步):**
```
cd DFProject
python tests/test_disk_reader.py
```
这将运行六个测试,涵盖片段检测、MBR 读取、GPT 头读取、备份 GPT 读取、活动磁盘访问和错误处理。所有结果都将打印出 PASS/FAIL 指示。
**在代码中使用该模块:**
```
from core.disk_reader import read_mbr_from_image
mbr = read_mbr_from_image("images/clean_mbr.001")
# mbr 正好是 512 原始字节
```
**在 Windows 上进行活动磁盘访问(必须以管理员身份运行 PowerShell):**
```
from core.disk_reader import read_mbr_from_live
mbr = read_mbr_from_live(drive_number=0)
# 0 = PhysicalDrive0,1 = PhysicalDrive1,依此类推
```
**获取镜像元数据:**
```
from core.disk_reader import get_image_info
info = get_image_info("images/clean_mbr.001")
# 返回总大小、扇区数、段列表和拆分标志
```
**运行完整集成测试:**
```
python tests/test_run_parser.py
```
**读取 MBR:**
```
from core.disk_reader
import read_mbr_from_imagembr = read_mbr_from_image("images/mbr_test.vhd")
```
**解析 MBR:**
```
from core.mbr_parser
import parse_partition_tablepartitions = parse_partition_table(mbr)
```
**解析 GPT:**
```
from core.gpt_parser
import parse_gpt_headergpt_info = parse_gpt_header(gpt_bytes)
```
## 5. 平台兼容性
### Windows 10 / 11
✔ 完全支持\
✔ 支持活动磁盘读取 (PhysicalDrive)\
✔ 支持 VHD 和取证镜像
### Linux / macOS
✔ 支持取证镜像\
✔ 必须手动挂载 VHD\
❌ 活动磁盘读取模块已禁用
## 6. 故障排除
**运行测试时出现 `FileNotFoundError`**
`tests/test_disk_reader.py` 中的镜像路径被设置为 `images/clean_mbr.001`。
请确保您的片段文件位于项目根目录下名为 `images/` 的文件夹内,并且文件被准确命名为 `clean_mbr.001`。
**`ValueError: only got N bytes`**
一个或多个镜像片段缺失或损坏。请确认 `images/` 文件夹中存在所有 18 个片段,并且没有一个文件的大小为 0 字节。如果片段已损坏,请从 FTK Imager 重新导出镜像。
**`PermissionError: Access denied to \\.\PhysicalDrive0`**
脚本未以管理员权限运行。请关闭 PowerShell,右键点击它,选择“以管理员身份运行”,导航回项目文件夹,然后重新运行测试。
**`\\.\PhysicalDrive0` 出现 `FileNotFoundError`**
驱动器索引可能有误。请打开“磁盘管理”(`diskmgmt.msc`) 以确认与您要读取的磁盘相对应的物理驱动器号,然后将该编号传递给 `read_mbr_from_live()`。
**`OSError: only supported on Windows`**
您在 Linux 或 macOS 上调用了 `read_mbr_from_live()`。请按照“平台兼容性”部分中的说明,将原始设备路径传递给 `read_mbr_from_image()` 使用。
**片段未能被自动检测**
自动检测功能会查找具有相同基本名称且扩展名为纯数字(`.001`、`.002` 等)的文件。如果您的文件使用了不同的命名约定,请重命名它们以符合此模式,或者手动传递每个文件的路径。
## 7. 团队成员
Syeda Shanzay Shah 23I-2016\
Sarita Sangrez 23I-2088\
Rumaisah Haroon 23I-2106\
Fatima Naeem 23I-2046
标签:DD镜像, GPT解析, GUI可视化, MBR解析, Python, Python 3.10, Raw镜像, VHD支持, 二进制解析, 取证工具, 取证报告生成, 取证镜像分析, 域渗透, 库, 应急响应, 底层扇区读取, 引导扇区修复, 数字取证, 数字证据, 数据完整性校验, 数据恢复, 数据恢复软件, 无后门, 无第三方依赖, 物理磁盘访问, 电子数据取证, 硬盘取证, 磁盘分区恢复, 磁盘分析, 磁盘数据结构, 系统启动扇区, 结构化解析, 网络安全, 自动化脚本, 逆向工具, 隐私保护