w617/ForensicPack

GitHub: w617/ForensicPack

一款面向 DFIR 场景的数字证据批量归档与验证工具,将打包、哈希校验、清单生成和报告输出整合为可重复的取证工作流。

Stars: 2 | Forks: 0

CI Python Platform License Tests

ForensicPack

专为 DFIR 设计的批量归档、哈希、验证和报告工具,用于可重复的数字证据工作流。

ForensicPack 通过 GUI 和 CLI 工作流,帮助取证实验室将证据集合打包成可验证的归档集,并提供清单生成、完整性检查和可直接用于报告的输出。

ForensicPack 旨在提供如同真实实验室工具般的体验,而不仅仅是一个脚本集合。该界面将输入路径、归档设置、哈希选择、队列状态和实时日志集中在一个视图中,使分析人员能够在更少的上下文切换下打包和验证证据。 ## 为什么选择 ForensicPack 数字证据打包通常由人工准备、独立的哈希工具、归档实用程序以及不一致的报告拼凑而成。ForensicPack 将其转化为更清晰、可重复的工作流: - 将证据集打包为对调查人员友好的格式 - 在同一作业中生成清单 - 在将包视为完成之前验证输出 - 输出 TXT、CSV 和可选的 JSON 报告,用于交接和文档记录 - 从基于 SQLite 的状态存储中恢复中断的会话 - 通过 GUI 或脚本化 CLI 执行运行相同的底层流程 ## 功能亮点 | 功能 | 作用 | |---|---| | GUI + CLI 一致性 | 共享的核心引擎,用于分析员操作、可重复的标准操作程序(SOP)和自动化 | | 多种归档格式 | 支持 `7z`、`ZIP`、`TAR.GZ` 和 `TAR.BZ2` | | 清单生成 | 在打包过程中捕获清单和哈希输出 | | 归档验证 | 在结束前进行构建后的完整性验证 | | 恢复支持 | 针对中断作业的基于 SQLite 的恢复机制 | | 试运行模式 | 生成清单和计划但不创建归档输出 | | JSON 报告 | 用于下游审查或自动化的结构化输出 | | Windows EXE 路径 | 支持为实验室部署构建 PyInstaller 版本 | ## 为实用的实验室工作流而设计 ### 证据打包 将文件夹、集合或选定的子项打包成一致的归档输出,而无需每次从头重建流程。 ### 完整性验证 在交接前验证已完成的包,并记录创建了什么、如何进行哈希处理以及验证是否成功。 ### 报告就绪输出 生成更易于在笔记、交接文档或内部实验室报告中引用的输出。 ### 可重复性 日常分析操作使用 GUI,当您希望将相同的工作流嵌入到脚本流程中时使用 CLI。 ## 支持的格式 | 格式 | 密码支持 | 分卷归档 | 验证方法 | |---|---:|---:|---| | `7z` | 是 | 是 | `7z t` | | `ZIP` | 否 | 否 | `zipfile.testzip()` | | `TAR.GZ` | 否 | 否 | 完整成员回读 | | `TAR.BZ2` | 否 | 否 | 完整成员回读 | ## 快速开始 ### 启动 GUI ``` cd src python forensicpack.py ``` 或者: ``` cd src python forensicpack.py gui ``` ### 通过 CLI 打包集合 ``` cd src python forensicpack.py pack --source .\TestCases --output .\TestOutput --format zip --hash SHA256 ``` ### 验证输出 ``` cd src python forensicpack.py verify --input .\TestOutput --hash SHA256 --report-json ``` ## 打包工作流示例 ``` python forensicpack.py pack ^ --source .\Input ^ --output .\Output ^ --format 7z ^ --compression "Normal (5)" ^ --hash SHA256 ^ --hash SHA512 ^ --split ^ --split-size 4 ^ --resume ^ --report-json ^ --examiner "Examiner Name" ^ --case-id "2026-001" ^ --evidence-id "Item-1" ``` ## 常规运行可生成的文件 - 每个源项目的已完成归档输出 - 每个归档内的嵌入式清单文本文件 - `ForensicPack_Report_.txt` - `ForensicPack_Report_.csv` - 启用 `--report-json` 时的 `ForensicPack_Report_.json` - 使用恢复/状态跟踪时的 `forensicpack_state.db` ## 环境要求 ### 运行时 - Python 3.10+ - 使用 `7z` 输出或 `7z` 验证时需要安装 7-Zip - 打包的 EXE 工作流需要 Windows + PowerShell 7-Zip 预期路径: - `C:\Program Files\7-Zip\7z.exe` - `C:\Program Files (x86)\7-Zip\7z.exe` ### 开发 ``` cd src python -m pip install -r requirements-dev.txt ``` ## 仓库结构 ``` . ├── .github/workflows/ # CI and release automation ├── checksums/ # SHA256 checksum artifacts ├── docs/ # Distribution and operational notes ├── release/windows/ # Built Windows EXE package └── src/ # Python source, tests, scripts, assets ├── forensicpack.py ├── cli.py ├── core.py ├── gui.py ├── scripts/build_windows.ps1 └── TestCases/ ``` ## 文档 - [发行说明](docs/README.txt) ## 测试 使用以下命令运行测试套件: ``` cd src pytest -q ``` 此包版本当前通过以下测试: ``` Run `cd src && pytest -q` to validate in your environment. ``` ## 构建 Windows EXE ``` .\src\scripts\build_windows.ps1 ``` 预期构建输出: ``` src\dist\ForensicPack\ForensicPack.exe ``` ## 路线图 - 改进对锁定或无法访问文件的处理 - 更丰富的报告摘要和面向实验室的输出模板 - 更好的 GUI 优化和工作流辅助功能 - 拖放输入操作的改进 - 更多用于证据打包的操作元数据预设 ## 操作说明 - 密码保护仅支持 `7z` 输出。 - 分卷归档仅支持 `7z` 输出。 - 打包的 EXE **不**捆绑 `7z.exe`;主机仍需要本地安装 7-Zip 才能执行 `7z` 操作。 - `gui_settings.json` 存储 UI 首选项,但不保留密码。 ## 预期用途 ForensicPack 旨在用于合法的 DFIR、数字证据处理、打包、传输和验证工作流。 ## 许可证 基于 MIT 许可证发布。参见 [LICENSE.txt](LICENSE.txt)。
标签:CLI, GUI, MIT许可, Python, SQLite, WiFi技术, 哈希校验, 域渗透, 安全规则引擎, 完整性校验, 实验室工具, 库, 应急响应, 归档工具, 数字取证, 数字证据, 数据保全, 无后门, 清单生成, 漏洞挖掘, 电子数据取证, 自动化脚本, 自动报告, 证据固定, 证据封装, 逆向工具