hurrainjhl/ThreadSleuth
GitHub: hurrainjhl/ThreadSleuth
ThreadSleuth 是一款基于 C++ 和 Python Streamlit 的高性能数字取证分析工具。
Stars: 0 | Forks: 2
```
████████╗██╗ ██╗██████╗ ███████╗ █████╗ ██████╗ ███████╗██╗ ███████╗██╗ ██╗████████╗██╗ ██╗
╚══██╔══╝██║ ██║██╔══██╗██╔════╝██╔══██╗██╔══██╗ ██╔════╝██║ ██╔════╝██║ ██║╚══██╔══╝██║ ██║
██║ ███████║██████╔╝█████╗ ███████║██║ ██║ ███████╗██║ █████╗ ██║ ██║ ██║ ███████║
██║ ██╔══██║██╔══██╗██╔══╝ ██╔══██║██║ ██║ ╚════██║██║ ██╔══╝ ██║ ██║ ██║ ██╔══██║
██║ ██║ ██║██║ ██║███████╗██║ ██║██████╔╝ ███████║███████╗███████╗╚██████╔╝ ██║ ██║ ██║
╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚═════╝ ╚══════╝╚══════╝╚══════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝
>_ DIGITAL FORENSIC ANALYZER_<
```
```
High-Performance Parallel Digital Forensic Analyzer
```
## 概述
**ThreadSleuth** 是一款高速数字取证分析工具,旨在高效处理大量磁盘镜像。通过利用 **C++ Master-Worker 多线程架构**,它与传统顺序工具相比,大幅减少了分析时间。该系统具有一个现代化的交互式仪表板,使用 **Streamlit (Python**) 构建,用于实时跟踪和报告进度。
ThreadSleuth 不是逐位处理数据,而是将工作负载划分为固定大小的块,并使用同步线程池并发处理这些块,确保100%的CPU利用率和不稳定性。
## 系统架构
系统遵循 **生产者-消费者** 模型,以确保线程安全和可扩展性:
1. **主线程(生产者):** 读取原始磁盘镜像并将其切割成可管理的“块”。
2. **任务队列:** 一个同步、线程安全的队列,用于存放等待分析的块。
3. **工作线程(消费者):** 一个持久的 **线程池**,从队列中获取块并并行处理它们(哈希、关键字搜索等)。
4. **结果聚合器:** 使用 **互斥锁** 安全地将多个工作者的结果组合成最终报告,避免竞争条件。
## 关键特性
* **高性能:** 后端使用 **C++** 编写,用于低级内存管理和速度。
* **并发:** 实现了一个自定义的 **线程池**,以避免创建/销毁线程的开销。
* **线程安全:** 使用 **互斥锁** 和 **条件变量** 防止数据损坏(竞争条件)。
* **现代UI:** **Streamlit** 前端提供了一个干净、基于Web的仪表板,可以即时可视化结果。
* **自动报告:** 完成后自动生成详细的取证报告。
## 技术栈
| 组件 | 技术 | 角色 |
| --- | --- | --- |
| **后端逻辑** | C++ (std::thread) | 核心处理引擎,内存管理 |
| **前端UI** | Python (Streamlit) | 用户界面,文件上传,可视化 |
| **同步** | 互斥锁,条件变量 | 确保线程安全和数据完整性 |
| **进程间通信** | 子进程/文件I/O | 连接Python UI与C++引擎 |
## 安装与使用
### 先决条件
* **C++ 编译器:** MinGW(Windows)或 G++(Linux)
* **Python 3.x**
* **Visual Studio**(可选,推荐Windows用户使用)
### 第1步:克隆仓库
```
git clone [https://github.com/hurrainjhl/ThreadSleuth.git](https://github.com/hurrainjhl/ThreadSleuth.git)
cd ThreadSleuth
```
### 第2步:编译后端(C++)
**在Windows上:**
```
# 如果使用 MinGW
g++ main.cpp -o backend.exe -pthread
# 或者如果使用 Visual Studio
# 在 VS 中打开项目,构建解决方案,并将 .exe 文件移动到这个文件夹中。
```
**在Linux/Mac上:**
```
g++ main.cpp -o backend -pthread
```
### 第3步:运行仪表板(Python)
安装所需的库并启动应用程序:
```
pip install streamlit
streamlit run app.py
```
应用程序将自动在您的浏览器中打开 `http://localhost:8501`。
## 截图
## 许可证
根据 **MIT 许可证** 分发。有关更多信息,请参阅 `LICENSE`。
## 贡献者
该项目是由一支专门的开发团队构建的:
* **[Hoor ul ein Soomro](https://github.com/hurrainjhl)** - *首席开发者*
* **[Affaf Ahmad](https://github.com/Affafahmad)** - *开发者*
* **[Sumaiya Arshad](https://github.com/pickachu19)** - *开发者*
* **[Marryum Afzaal](https://github.com/marryum2004)** *开发者*
* **[团队成员4]** - *开发者*
为PDC课程项目持续努力开发
由 [MY Team] 开发
由咖啡和代码 ☕ 驱动
```
```