ProfStefanoOliva/metanalisys
GitHub: ProfStefanoOliva/metanalisys
一款面向 Microsoft Office 文件的元数据取证辅助分析工具,支持从现代 OOXML 文档中提取元数据、计算哈希并生成结构化报告,提供 CLI 和 GUI 两种使用方式。
Stars: 0 | Forks: 0
# metanalisys
`metanalisys` 是一个 Python 技术支持工具,用于对 Microsoft Office 文件的元数据进行初步分析。该项目包含一个命令行版本和一个基于 `customtkinter` 的 GUI。
## 开发状态:Alpha
该软件目前处于 `Alpha` 阶段。在此状态下,它适用于技术评估、测试和受控的实验,但不得作为得出法庭鉴定结论、程序决策或证据评估的唯一依据。
本软件的使用风险由用户自行承担。使用者必须在授权、合法且记录在案的程序内进行操作,同时充分考虑到本项目的技术局限性以及对具体案例进行专业评估的必要性。
本项目欢迎测试人员和技术审查员的参与。任何公开测试、issue 或贡献必须仅使用合成的或非敏感的文件,严禁上传真实的 Office 文件、证据或个人数据。
## 目的
该软件有助于:
- 识别被分析的文件及其哈希值;
- 从基于 Open XML 的现代 Office 文档中提取元数据;
- 突出显示一些有助于初步审查的技术指标;
- 生成文本和 JSON 报告,供在授权程序内使用。
## 司法鉴定警告
本项目旨在作为元数据分析的技术辅助工具。它不声明具备绝对的司法鉴定合规性,也不能替代证据链、记录、授权、专业评估或适用的程序法规。
关于谨慎使用该软件的更多框架说明:
- 参见 [docs/FORENSIC_SCOPE.md](docs/FORENSIC_SCOPE.md)
- 参见 [docs/LEGAL_LIMITS.md](docs/LEGAL_LIMITS.md)
- 参见 [docs/CHAIN_OF_CUSTODY.md](docs/CHAIN_OF_CUSTODY.md)
- 参见 [docs/TESTING_AND_VALIDATION.md](docs/TESTING_AND_VALIDATION.md)
- 参见 [docs/SCIENTIFIC_VALIDATION_PROTOCOL.md](docs/SCIENTIFIC_VALIDATION_PROTOCOL.md)
- 参见 [docs/ALPHA_TEST_PLAN.md](docs/ALPHA_TEST_PLAN.md)
- 参见 [docs/RELEASE_READINESS.md](docs/RELEASE_READINESS.md)
- 参见 [docs/RELEASE_NOTES_v0.1.0-alpha.1.md](docs/RELEASE_NOTES_v0.1.0-alpha.1.md)
## 支持的格式
### 提供 `full` 元数据支持的 OOXML
- Word: `.docx`, `.docm`, `.dotx`, `.dotm`
- Excel: `.xlsx`, `.xlsm`, `.xltx`, `.xltm`, `.xlam`
- PowerPoint: `.pptx`, `.pptm`, `.potx`, `.potm`, `.ppsx`, `.ppsm`
- Visio: `.vsdx`, `.vsdm`, `.vstx`, `.vstm`
对于这些格式,该工具会计算哈希值、读取文件系统信息,并尝试提取 Office Open XML 元数据、关系、嵌入文件、图像以及一些技术指标。
### 提供 `limited` 支持的旧版格式
- Word: `.doc`, `.dot`
- Excel: `.xls`, `.xlt`
- PowerPoint: `.ppt`, `.pot`, `.pps`
对于旧版格式,尚未实现完整的解析器。不过,该工具仍会显示哈希值、基本文件信息以及明确的支持受限提示,而不会声明已完整提取内部元数据。
## 安装
前置条件:
- Python 3.11
在 PowerShell 中创建虚拟环境:
```
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install Pillow customtkinter
```
## 测试
安装运行时依赖项:
```
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -r .\requirements.txt
```
安装测试依赖项:
```
python -m pip install -r .\requirements-dev.txt
```
运行测试:
```
.\.venv\Scripts\python.exe -m pytest .\tests
```
有关自动化测试套件及其局限性的详细信息:
- 参见 [docs/TESTING_AND_VALIDATION.md](docs/TESTING_AND_VALIDATION.md)
## 持续集成
本仓库包含一个 GitHub Actions 工作流,它会自动运行:
- 对项目的主要 Python 文件执行 `py_compile`;
- 对 `tests` 文件夹执行 `pytest`。
CI 使用仓库中已有的合成测试,不需要真实的 Office 文件。即使流水线成功执行,其结果也仅代表对软件的技术验证,不构成证据验证或专业的司法鉴定评估。
## CLI 用法
使用文件路径作为参数启动:
```
.\.venv\Scripts\python.exe .\src\metanalisys.py C:\percorso\documento.docx
```
交互式启动:
```
.\.venv\Scripts\python.exe .\src\metanalisys.py
```
CLI 提供以下选项:
- 在屏幕上打印报告;
- 保存 TXT 报告。
JSON 报告由工具自动命名并生成。
## GUI 用法
```
.\.venv\Scripts\python.exe .\src\metanalisysGUI.py
```
操作流程:
1. 选择一个 Office 文件;
2. 开始分析;
3. 在窗口中查看报告;
4. 如有需要,保存文本报告。
## 生成的输出
本项目可以生成:
- 在屏幕上显示的文本报告;
- 带有 `_forensic_report.txt` 后缀的 TXT 报告;
- 带有 `_forensic_report.json` 后缀的 JSON 报告。
报告的前几个部分包括:
- 文件的哈希值,包括 `sha256` 和 `sha512`;
- 文件信息;
- 格式支持状态。
## 报告示例
```
======================================================================
OFFICE FORENSIC ANALYSIS REPORT
======================================================================
[FILE HASH]
sha256: ...
sha512: ...
[FILE INFO]
filename: example.docx
path: C:\path\example.docx
extension: .docx
[FORMAT SUPPORT]
extension: .docx
family: Word
label: Word Document
container: ooxml
metadata_support: full
```
## 测试数据和敏感内容
严禁向仓库上传以下内容:
- 真实的 Office 文件;
- 数字证据;
- 来自真实案例的文档;
- 个人数据或特殊数据;
- 公开 issue 中的敏感附件。
请仅使用经过匿名化处理且不包含个人参考信息的合成样本。
## 作者
本项目由 Stefano Oliva 开发和维护。
仓库:ProfStefanoOliva/metanalisys
## 许可证
本项目基于 GNU General Public License v3.0 许可证发布。完整文本请参见 [LICENSE](LICENSE) 文件。
标签:Alpha阶段, customtkinter, ESC4, JSON报告, meg, Microsoft Office, Open XML, OSINT, Python, 信息安全, 元数据分析, 司法鉴定辅助, 图形用户界面, 域渗透, 安全合规, 恶意文档分析, 搜索语句(dork), 数字取证, 数字证据, 数据提取, 文件哈希, 文档审计, 无后门, 测试工具, 电子数据取证, 网络代理, 自动化脚本, 逆向工具, 配置审计