Tang6762/BitLocker-Key-Finder
GitHub: Tang6762/BitLocker-Key-Finder
一款专为数字取证设计的工具,通过分析物理内存转储和扫描磁盘分区来提取并验证 BitLocker 恢复密钥,同时集成了案件管理与报告导出功能。
Stars: 0 | Forks: 0
# BitLocker Key Finder v1.0
[](https://www.python.org/)
[](#法律声明)
[](#)
[](#)
**专业的 BitLocker 恢复密钥提取数字取证工具**
## 📋 概述
**BitLocker Key Finder** 是一款综合性的数字取证工具,旨在从 Windows 系统中提取和恢复 BitLocker 加密恢复密钥。它提供了**两种独立的取证方法**用于密钥恢复:
### 🎯 核心功能
| 方法 | 模式 | 速度 | 适用场景 |
|--------|------|-------|----------|
| **A部分:实时 RAM 提取** | 活动系统 | 2-5 分钟 | 运行中的系统分析 |
| **B部分:分区扫描** | 离线/存储 | 5-30 分钟 | 全面的磁盘恢复 |
BitLocker 是微软的全盘加密技术,通过加密保护敏感数据。当调查人员遇到加密驱动器时,他们需要工具来提取恢复密钥——即作为备份访问机制的 48 位数字代码。该工具正是为了满足这一关键的取证需求而设计的。
## ✨ 特性
### 🔒 取证功能
✅ **实时 RAM 内存提取**
- 从活动系统内存中提取 BitLocker 密钥
- 通过 WinPmem 集成进行物理 RAM 分析
- 用于证据链的内存偏移量跟踪
- 适用于正在运行的 Windows 系统
✅ **分区与磁盘扫描**
- 用户选择的分区/驱动器分析
- 针对 BitLocker 恢复文件的文件名搜索
- 结合二进制重组的深度内容扫描
- 未分配空间分析
- 适用于已关机的系统及取证镜像
✅ **高级验证**
- 微软 mod-11 校验和验证
- 减少约 90% 的误报
- 多编码支持 (UTF-8, UTF-16-LE, UTF-16-BE)
- 恢复密钥 ID 提取
- 密码学真实性验证
### 🎨 专业界面
✅ **以用户为中心的设计**
- 深色专业主题 + 高对比度选项
- 实时进度跟踪
- 带有键盘快捷键的直观菜单系统
- 带有线程支持的响应式 GUI
✅ **案件管理**
- 启动时捕获案件信息
- 调查人员文档记录
- 设备识别
- 自动包含在所有导出文件中
- 专业的取证报告
✅ **导出与文档记录**
- 包含案件信息的文本文件导出
- 自动保存到项目文件夹
- 取证标准格式
- 包含时间戳和元数据
- 适用于法律诉讼程序
## 💻 系统要求
### 硬件要求
```
Minimum Configuration:
├─ Processor: Intel Core i5 or equivalent
├─ RAM: 8 GB minimum
├─ Storage: 500 MB application + 30 GB for scan results
└─ Architecture: 64-bit processor
Recommended Configuration:
├─ Processor: Intel Core i7 or higher
├─ RAM: 16 GB+
├─ Storage: 50 GB+ free space
└─ Architecture: 64-bit processor
```
### 软件要求
**对于 A部分 (实时 RAM 提取):**
- 操作系统: Windows 10/11 (64位)
- 管理员权限: 必需
- BitLocker: 必须安装 (专业版/企业版)
- Python: 3.8 或更高版本
- .NET Framework: 4.5+
**对于 B部分 (分区/磁盘扫描):**
- 操作系统: Windows 10/11 或 Linux (Ubuntu 18.04+)
- 管理员/Root 权限: 必需
- Python: 3.8 或更高版本
- 文件系统: NTFS, FAT32, ext4 等
### Python 依赖项
```
Required Python Version: 3.8+
Required Libraries:
├─ tkinter (GUI framework - pre-installed with Python)
├─ reportlab (PDF generation)
└─ volatility3 (Memory analysis - optional but recommended)
```
## 🚀 安装指南
### 前置条件检查
```
# 验证 Python 安装
python --version
# 预期:Python 3.8.x 或更高版本
# 验证 Administrator 权限 (Windows)
whoami /priv
# 输出中应显示 Administrator
```
### 步骤 1: 安装 Python 3.8+
**Windows:**
1. 从此处下载: https://www.python.org/downloads/
2. 运行安装程序
3. **关键:** 勾选 "Add Python to PATH" 复选框
4. 选择 "Install for all users" (推荐)
5. 点击 "Install Now"
6. 等待安装完成
**Linux (Ubuntu/Debian):**
```
sudo apt update
sudo apt install python3 python3-pip python3-tk
python3 --version
```
**macOS:**
```
brew install python3
python3 --version
```
### 步骤 2: 克隆仓库
```
# 使用 Git
git clone https://github.com/Irtaza1927/BitLocker-Key-Finder.git
cd BitLocker-Key-Finder
# 或从 GitHub 下载 ZIP
```
### 步骤 3: 创建虚拟环境 (推荐)
```
# Windows
python -m venv venv
venv\Scripts\activate
# Linux/macOS
python3 -m venv venv
source venv/bin/activate
```
### 步骤 4: 安装依赖项
```
# 安装所有必需的包
pip install -r requirements.txt
# 或单独安装
pip install tkinter
pip install reportlab
pip install volatility3
```
### 步骤 5: 添加 WinPmem (适用于 A部分 - 仅限 Windows)
**原因:** A部分需要 WinPmem 来进行物理内存提取
1. 从此处下载 WinPmem: https://github.com/Velocidex/WinPmem/releases
2. 解压 ZIP 文件
3. 将 `winpmem.exe` 复制到: `DFProject/assets/winpmem.exe`
**验证安装:**
```
dir assets\winpmem.exe
# 应显示文件大小和详细信息
```
### 步骤 6: 验证完整安装
```
# 运行应用程序
python main.py
# 预期输出:
# ✓ 应用程序窗口打开
# ✓ 启动屏幕显示 "BitLocker Key Finder v1.0"
# ✓ 出现 Press ENTER 提示
```
**安装故障排除:**
| 问题 | 解决方案 |
|-------|----------|
| "Python not found" | 重新安装 Python,检查是否勾选了 "Add to PATH" |
| "Module not found" | 运行: `pip install -r requirements.txt --upgrade` |
| "Permission denied" | 以管理员身份运行命令提示符 |
| "WinPmem not found" | 下载并放置在 `assets/winpmem.exe` 中 |
## 📖 执行步骤
### 基本启动
```
# 导航到项目目录
cd BitLocker-Key-Finder
# 运行应用程序
python main.py
```
### 完整工作流程
**步骤 1: 启动画面**
- 应用程序启动
- 出现启动画面: "BitLocker Key Finder v1.0"
- 操作: 按 ENTER 键继续
**步骤 2: 输入案件信息**
- 填写案件详情:
- 案件编号: (例如,2024-CASE-001)
- 调查人员: (您的姓名)
- 设备名称: (目标 PC 名称)
- 备注: (调查详情)
- 操作: 点击 PROCEED
**步骤 3: 方法选择**
- 出现主菜单
- 选项 1: 实时 RAM 提取
- 选项 2: 分区/磁盘扫描
- 操作: 按 1 或 2
**步骤 4A: 实时 RAM 提取配置**
- RAM 大小: 自动检测或手动选择
- 扫描深度: FAST, NORMAL (推荐), 或 DEEP
- 编码: UTF-8, UTF-16-LE 选项
- 操作: 点击 START SCAN
**步骤 4B: 分区扫描配置**
- 选择目标驱动器/分区/文件夹
- 启用扫描选项 (文件名,内容,重组)
- 设置文件大小过滤器
- 选择文件扩展名
- 操作: 点击 START SCAN
**步骤 5: 监控进度**
- 实时进度条
- 已发现密钥计数
- 已用时间显示
- 当前扫描位置
**步骤 6: 查看结果**
- 显示所有找到密钥的结果表
- 双击查看完整详情
- 查看验证状态
**步骤 7: 导出结果**
- 点击 "Save as Text"
- 选择保存位置
- 保存的文件将自动包含案件信息
## 🖥️ 平台兼容性
### Windows 10/11
**支持:**
- Windows 10 专业版/企业版 (所有版本)
- Windows 11 专业版/企业版 (所有版本)
- A部分与 B部分均支持
**要求:**
- 管理员权限
- .NET Framework 4.5+
- Visual C++ Redistributable 2019+
**测试状态:**
- ✓ 已测试: Windows 10 22H2
- ✓ 已测试: Windows 11 23H2
### Linux (Ubuntu/Debian)
**支持:**
- Ubuntu 18.04 LTS+
- Ubuntu 20.04 LTS
- Ubuntu 22.04 LTS
- Debian 10+
- 仅限 B部分 (不支持实时 RAM 提取)
**安装:**
```
sudo apt update
sudo apt install python3 python3-pip python3-tk
git clone https://github.com/Irtaza1927/BitLocker-Key-Finder.git
cd BitLocker-Key-Finder
pip3 install -r requirements.txt
python3 main.py
```
### macOS
**支持:**
- 有限支持 (未经测试)
- A部分: 不支持 (无 WinPmem)
- B部分: 可能支持
### 功能兼容性矩阵
| 功能 | Windows | Linux | macOS |
|---------|---------|-------|-------|
| A部分: 实时 RAM | ✅ | ❌ | ❌ |
| B部分: 分区扫描 | ✅ | ✅ | ⚠️ |
| 案件管理 | ✅ | ✅ | ✅ |
| 主题系统 | ✅ | ✅ | ✅ |
| 文本导出 | ✅ | ✅ | ✅ |
## 🔧 故障排除
### 安装问题
#### 问题:"Python not found"
**原因:** Python 未添加到系统 PATH 中
**解决方案:**
1. 从 https://www.python.org/ 重新安装 Python
2. **检查:** 安装时确保勾选 "Add Python to PATH"
3. 重启命令提示符
4. 验证: `python --version`
#### 问题:"No module named tkinter"
**原因:** 未安装 Tkinter
**解决方案:**
Windows:
```
pip install tk
```
Linux:
```
sudo apt install python3-tk
```
#### 问题:"WinPmem not found"
**原因:** 缺失或路径不正确
**解决方案:**
1. 从此处下载: https://github.com/Velocidex/WinPmem/releases
2. 放置在: `DFProject/assets/winpmem.exe`
3. 验证文件是否存在于正确位置
#### 问题:"ModuleNotFoundError"
**原因:** 依赖项未安装
**解决方案:**
```
pip install -r requirements.txt --upgrade
```
### 运行时问题
#### 问题:"Access Denied" 或 "Permission Denied"
**原因:** 未以管理员权限运行
**解决方案:**
Windows:
- 右键点击命令提示符
- 选择 "Run as Administrator"
- 导航到项目文件夹
- 运行: `python main.py`
Linux:
```
sudo python3 main.py
```
#### 问题:扫描过程中 GUI 窗口冻结
**原因:** 长时间运行的操作 (正常行为)
**解决方案:**
- 扫描正在后台运行
- 完成后进度条将更新
- 请勿强制关闭应用程序
- 等待扫描完成
#### 问题:扫描返回零个密钥
**可能的原因:**
- 系统上未启用 BitLocker
- 密钥从未保存到磁盘 (B部分)
- 密钥已被安全删除
- 选择了错误的分区
- 权限不足
**验证:**
Windows:
```
manage-bde -status
# 显示每个驱动器的 BitLocker 状态
```
#### 问题:高误报率
**预期行为:**
- 出现一些仅匹配模式的密钥是正常的 (约 10%)
- 只有标记为 "Valid (mod-11)" 的密钥才是可靠的
- 仅关注已验证的密钥
## 📋 项目结构
```
BitLocker-Key-Finder/
│
├── README.md ← This file
├── requirements.txt ← Python dependencies
├── main.py ← Application entry point
├── theme_config.py ← Theme configuration
│
├── modules/
│ ├── __init__.py
│ ├── live_ram.py ← Part A: RAM extraction
│ ├── partition_scan.py ← Part B: Disk scanning
│ └── pdf_reporter.py ← Report generation
│
├── ui/
│ ├── __init__.py
│ ├── interface.py ← Main menu & Part B UI
│ ├── ram_interface.py ← Part A UI
│ ├── splash_screen.py ← Startup screen
│ ├── case_info_dialog.py ← Case information
│ └── settings_screens.py ← Settings/Help/About
│
├── assets/
│ ├── winpmem.exe ← Download separately
│ └── README.txt ← Assets instructions
│
└── tests/
└── sample_keys.txt ← Test data
```
## 📊 性能指标
### 典型执行时间
**A部分 - 实时 RAM 提取:**
- FAST 模式: 2-3 分钟
- NORMAL 模式: 3-5 分钟 (推荐)
- DEEP 模式: 5-10 分钟
**B部分 - 分区扫描:**
- 小型驱动器 (< 100GB): 5-10 分钟
- 中型驱动器 (100-500GB): 15-25 分钟
- 大型驱动器 (> 500GB): 30 分钟以上
**影响速度的因素:**
- 系统 CPU 速度
- RAM 容量
- 磁盘速度
- 文件数量
- 选择的扫描深度
## ⚖️ 法律声明
⚠️ **重要 - 使用前必读**
### 仅限授权使用
本工具**专供**授权的**取证调查**使用。
**授权使用场景:**
- ✅ 拥有法庭授权的执法部门
- ✅ 拥有书面授权的企业安全部门
- ✅ 您个人拥有的系统
- ✅ 授权的培训/教育环境
- ✅ 批准的安全研究
**禁止使用场景:**
- ❌ 未经授权访问他人系统
- ❌ 商业间谍活动
- ❌ 侵犯隐私
- ❌ 犯罪活动
### 法律合规性
**美国:**
- 计算机欺诈和滥用法 (CFAA)
- 数字千年版权法 (DMCA)
**欧盟:**
- GDPR (通用数据保护条例)
**证据保管链要求:**
- 记录调查人员身份
- 记录调查日期和时间
- 维护系统/设备详情
- 保留授权文档
- 记录使用的工具和方法
- 保全所有发现的结果
### 免责声明
本工具按 "原样" 提供,不提供任何保证。用户需对以下事项负责:
- 确保拥有适当的授权
- 遵守法律合规性
- 正确使用
- 解读结果
- 证据处理标准
## 👥 团队与致谢
### 开发团队
**FAST-NUCES 伊斯兰堡 - 第 6 学期数字取证项目| 成员 | 学号 | 贡献 |
|--------|--------|--------------|
| Irtaza Zahid | 23i-2096 | 实时 RAM 提取引擎,mod-11 验证,分区扫描,GUI |
| Muhammad Ammar Shahid | 23I-2125 | 分区扫描,数据重组,文件扩展名过滤器 |
| Usman Khan | 23I-2069 | 加载转储文件,浏览对话框,导出为文本 |
| Shaheer Shaban | 23I-2040 | 控制台输出,测试 |
### 院校信息
- **学科:** 数字取证 (CY-2002/3006)
- **院校:** FAST-NUCES 伊斯兰堡
- **专业:** 网络安全理学学士
## 📝 许可证
本项目仅限用于**教育和授权的取证用途**。
**教育用途许可证**
本工具作为学术课程的一部分开发,旨在用于:
- 教育目的
- 授权的取证调查
- 培训与研究
- 专业的安全工作
**条件:**
- 必须注明原作者和院校出处
- 仅限授权使用
- 禁止商业分发
- 遵守所有适用法律
## 🔗 仓库链接
- **GitHub:** https://github.com/Irtaza1927/BitLocker-Key-Finder
- **Issues:** https://github.com/Irtaza1927/BitLocker-Key-Finder/issues
- **Releases:** https://github.com/Irtaza1927/BitLocker-Key-Finder/releases
## ❓ 常见问题
**问:使用这个工具合法吗?**
答:合法,前提是合法使用。该工具专为**授权的取证调查**设计。必须获得系统所有者的书面授权、执法部门的搜查令或法院命令。
**问:结果的准确性如何?**
答:对于有效密钥非常准确 (99.9% 的置信度)。通过 mod-11 验证的密钥经过了数学验证。仅匹配模式的密钥约有 10% 的误报率。
**问:这能破解 BitLocker 加密吗?**
答:不能。该工具仅用于**恢复现有密钥**。它不会破坏加密或绕过密码。
**问:如果没有找到任何密钥怎么办?**
答:这表明 BitLocker 未启用、密钥未保存到磁盘,或密钥已被安全删除。这本身就是具有重要取证意义的信息。
**问:我可以在我没有所有权的系统上使用它吗?**
答:只有在获得所有者、执法部门或法院的**明确授权**后才可以。未经授权的访问是违法行为。
## 🆘 支持
### 获取帮助
1. **阅读文档:**
- README.md (本文件)
2. **查看故障排除:**
- 常见问题与解决方案
- 安装问题
- 运行时错误
3. **创建 GitHub Issue:**
- https://github.com/Irtaza1927/BitLocker-Key-Finder/issues
- 提供详细信息
- 包含错误信息
- 描述系统配置
## 📦 快速开始
面向有经验的用户:
```
# 1. Clone 和 setup
git clone https://github.com/Irtaza1927/BitLocker-Key-Finder.git
cd BitLocker-Key-Finder
# 2. Install dependencies
pip install -r requirements.txt
# 3. 添加 WinPmem (仅限 Windows)
# 下载并放置在 assets/winpmem.exe 中
# 4. Run
python main.py
# 5. 按照屏幕上的说明操作
```
## 📄 更新日志
### v1.0 - 2024 年 4 月 (当前版本)
**功能:**
- ✅ 实时 RAM 提取 (A部分)
- ✅ 分区/磁盘扫描 (B部分)
- ✅ mod-11 验证
- ✅ 多编码支持
- ✅ 案件管理
- ✅ 专业 UI
- ✅ 文本导出
**BitLocker Key Finder v1.0**
*专业的 BitLocker 恢复密钥提取数字取证工具*
由 Irtaza Zahid, Ammar Shahid, Usman Khan, Shaheer Shaban 用 ❤️ 制作 | FAST-NUCES 伊斯兰堡
[⭐ 在 GitHub 上加星](https://github.com/Irtaza1927/BitLocker-Key-Finder) • [🐛 报告问题](https://github.com/Irtaza1927/BitLocker-Key-Finder/issues)
**免责声明:** 本工具仅用于授权的取证调查。未经授权的访问是违法行为。使用前请务必获得适当的授权。
标签:BitLocker, Conpot, Google搜索, HTTP工具, JARM, mod-11校验, ProjectDiscovery, Python, Windows安全, WinPmem, 二进制分析, 云安全运维, 全盘加密, 内存分析, 分区扫描, 取证报告, 哈希校验, 域渗透, 多编码分析, 实时内存提取, 密钥提取, 库, 应急响应, 数字取证, 数据保护, 数据恢复, 数据雕刻, 无后门, 未分配空间分析, 案件管理, 电子数据取证, 磁盘加密, 网络安全, 自动化脚本, 逆向工具, 隐私保护