Irtaza1927/BitLocker-Key-Finder
GitHub: Irtaza1927/BitLocker-Key-Finder
一款面向数字取证的专业工具,用于从活动系统内存和磁盘分区中提取并验证 BitLocker 恢复密钥。
Stars: 1 | Forks: 0
# BitLocker Key Finder v1.0
[](https://www.python.org/)
[](#法律声明)
[](#)
[](#)
**用于提取 BitLocker 恢复密钥的专业数字取证工具**
## 📋 概述
**BitLocker Key Finder** 是一款综合性的数字取证工具,旨在从 Windows 系统中提取和恢复 BitLocker 加密恢复密钥。它提供了**两种独立的取证方法**用于密钥恢复:
### 🎯 核心功能
| 方法 | 模式 | 速度 | 适用场景 |
|--------|------|-------|----------|
| **Part A: 实时内存提取** | 活动系统 | 2-5 分钟 | 运行中系统分析 |
| **Part B: 分区扫描** | 离线/存储 | 5-30 分钟 | 全面磁盘数据雕刻 |
BitLocker 是 Microsoft 的全盘加密技术,通过加密保护敏感数据。当调查人员遇到加密驱动器时,他们需要工具来提取恢复密钥——用作备份访问机制的 48 位数字代码。此工具旨在满足这一关键的取证需求。
## ✨ 特性
### 🔒 取证功能
✅ **实时内存提取**
- 从活动系统内存中提取 BitLocker 密钥
- 通过 WinPmem 集成进行物理内存分析
- 用于证据链的内存偏移量跟踪
- 适用于正在运行的 Windows 系统
✅ **分区与磁盘扫描**
- 用户选择的分区/驱动器分析
- 针对 BitLocker 恢复文件的文件名搜索
- 带有二进制雕刻的深度内容扫描
- 未分配空间分析
- 适用于已关机的系统和取证镜像
✅ **高级验证**
- Microsoft 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
```
### 软件要求
**适用于 Part A(实时内存提取):**
- 操作系统: Windows 10/11 (64-bit)
- 管理员权限: 必需
- BitLocker: 必须已安装 (专业版/企业版)
- Python: 3.8 或更高版本
- .NET Framework: 4.5+
**适用于 Part 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(适用于 Part A - 仅限 Windows)
**原因:** Part 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"
# ✓ 出现按 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:实时内存提取
- 选项 2:分区/磁盘扫描
- 操作:按 1 或 2
**步骤 4A:实时内存提取配置**
- 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 专业版/企业版(所有版本)
- 同时支持 Part A 和 Part 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+
- 仅限 Part B(不支持实时内存提取)
**安装:**
```
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
**支持:**
- 有限支持(未经测试)
- Part A:不支持(无 WinPmem)
- Part B:可能支持
### 功能兼容性矩阵
| 功能 | Windows | Linux | macOS |
|---------|---------|-------|-------|
| Part A: 实时内存 | ✅ | ❌ | ❌ |
| Part 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
- 密钥从未保存到磁盘(Part 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
```
## 📊 性能指标
### 典型执行时间
**Part A - 实时内存提取:**
- FAST 模式:2-3 分钟
- NORMAL 模式:3-5 分钟(推荐)
- DEEP 模式:5-10 分钟
**Part B - 分区扫描:**
- 小型驱动器 (< 100GB):5-10 分钟
- 中型驱动器 (100-500GB):15-25 分钟
- 大型驱动器 (> 500GB):30 分钟以上
**影响速度的因素:**
- 系统 CPU 速度
- RAM 容量
- 磁盘速度
- 文件数量
- 选择的扫描深度
## ⚖️ 法律声明
⚠️ **重要信息 - 使用前必读**
### 仅限授权使用
此工具**专门**为**授权的取证调查**而设计。
**授权使用场景:**
- ✅ 拥有法院授权的执法行动
- ✅ 获得书面授权的企业安全行动
- ✅ 您拥有的个人系统
- ✅ 获授权的培训/教育环境
- ✅ 批准的安全研究
**禁止使用:**
- ❌ 未经授权访问他人系统
- ❌ 商业间谍活动
- ❌ 侵犯隐私
- ❌ 犯罪活动
### 法律合规
**美国:**
- 计算机欺诈和滥用法 (CFAA)
- 数字千年版权法 (DMCA)
**欧盟:**
- GDPR (通用数据保护条例)
**证据保管链要求:**
- 记录调查人员身份
- 记录调查日期和时间
- 保留系统/设备详细信息
- 保留授权文档
- 记录使用的工具和方法
- 保留所有发现结果
### 免责声明
此工具按 "原样" 提供,不提供任何保证。用户需对以下事项负责:
- 确保拥有适当的授权
- 遵守法律法规
- 正确的使用方式
- 结果解释
- 证据处理标准
## 👥 团队与致谢
### 开发团队
**FAST-NUCES 伊斯兰堡 - 第 6 学期数字取证项目**
| 成员 | 学号 | 贡献 |
|--------|--------|--------------|
| Irtaza Zahid | 23i-2096 | 实时内存提取引擎,mod-11 验证,分区扫描,GUI |
| Muhammad Am Shahid | 23I-2125 | 分区扫描,数据雕刻,文件扩展名过滤器 |
| Usman Khan | 23I-2069 | 加载转储文件,浏览对话框,导出为文本 |
| Shaheer Shaban | 23I-2040 | 控制台输出,测试 |
### 机构
- **科目:** 数字取证 (CY-2002/3006)
- **机构:** FAST-NUCES 伊斯兰堡
- **项目:** 网络安全理学学士
## 📝 许可证
此项目仅用于**教育和授权的取证目的**。
**教育用途许可证**
此工具作为学术课程作业的一部分开发,旨在用于:
- 教育目的
- 授权的取证调查
- 培训与研究
- 专业的安全工作
**条件:**
- 必须注明原作者和机构出处
- 仅限授权使用
- 禁止商业分发
- 遵守所有适用法律
## 🔗 仓库链接
- **GitHub:** https://github.com/Irtaza1927/BitLocker-Key-Finder
- **问题追踪:** https://github.com/Irtaza1927/BitLocker-Key-Finder/issues
- **发布版:** 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 和设置
git clone https://github.com/Irtaza1927/BitLocker-Key-Finder.git
cd BitLocker-Key-Finder
# 2. 安装 dependencies
pip install -r requirements.txt
# 3. 添加 WinPmem (仅限 Windows)
# 下载并放置在 assets/winpmem.exe
# 4. 运行
python main.py
# 5. 按照屏幕上的说明操作
```
## 📄 更新日志
### v1.0 - 2024 年 4 月(当前版本)
**功能:**
- ✅ 实时内存提取(Part A)
- ✅ 分区/磁盘扫描(Part 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, FDE, HTTP工具, Python, RAM提取, SecList, Windows安全, WinPmem, 二进制分析, 云安全运维, 全盘加密, 内存取证, 分区扫描, 取证实战, 域渗透, 密钥提取, 恢复密钥, 数字取证, 数据恢复, 数据雕刻, 无后门, 未分配空间分析, 校验和验证, 电子数据取证, 磁盘加密, 离线取证, 网络安全, 自动化脚本, 逆向分析, 逆向工具, 隐私保护