FireXCore/MailVault-Collection-Profiler

GitHub: FireXCore/MailVault-Collection-Profiler

一款面向 MailVault 邮件归档的只读本地分析工具,通过 SQLite 快照、SHA-256 校验和有界物理检查在不修改原始数据的前提下生成可重现的技术清单与检查发现。

Stars: 0 | Forks: 0

# MailVault Collection Profiler **适用于 MailVault 归档的只读、本地优先的物理清单和技术证据浏览器。** [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ad/ad5834178f7599af9fdda11629d49cae07f2997beec49821b2920eff5bfd50e7.svg)](https://github.com/FireXCore/mailvault-collection-profiler/actions/workflows/ci.yml) [![CodeQL](https://static.pigsec.cn/wp-content/uploads/repos/cas/53/539e9a6bf48ad24469a4363bff3aa68124154549e26592783d3d8577f2acbbfc.svg)](https://github.com/FireXCore/mailvault-collection-profiler/actions/workflows/codeql.yml) [![Release](https://img.shields.io/github/v/release/FireXCore/mailvault-collection-profiler?include_prereleases&label=release)](https://github.com/FireXCore/mailvault-collection-profiler/releases) [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE) [![Windows](https://img.shields.io/badge/platform-Windows%20x64-2f80ed.svg)](docs/INSTALLATION_WINDOWS.md) [فارسی](README_FA.md) · [下载](https://github.com/FireXCore/mailvault-collection-profiler/releases) · [入门指南](docs/GETTING_STARTED.md) · [GUI 指南](docs/GUI_GUIDE.md) · [CLI 参考](docs/CLI_REFERENCE.md) · [安全性](SECURITY.md)
![集合设置与兼容的只读预检](https://static.pigsec.cn/wp-content/uploads/repos/cas/58/58300d5e690be710267a731ef775d35d0150d63676ab07728e36889a322703e7.png) ## 为什么需要此工具 MailVault 归档不仅仅是一个存放附件的文件夹。它包含一个权威的 SQLite 数据库、邮件与 MIME 部分的关系、基于内容寻址的对象存储、随时间观察到的文件名,以及可能丢失、无法读取或与记录的元数据不一致的物理文件。 MailVault Collection Profiler 能够在不更改原始归档的情况下,构建可重现的技术清单: ``` read-only preflight → consistent SQLite snapshot in a separate workspace → streaming metadata inventory → attachment-occurrence and SHA-256 reconciliation → bounded physical file checks → durable findings and checkpoints → read-only inventory and findings explorer ``` ## 核心安全契约 - 权威的 MailVault 数据库以只读模式打开。 - Profiler 工作区必须位于源归档之外。 - 在处理清单之前,会创建一致的 SQLite 快照。 - 在打开任何文件之前,会验证权威的 blob 定位符。 - 路径包含失败被视为检查发现,而不是 profiler 会遵循的路径。 - 不会执行、渲染、提取或上传任何附件。 - 不需要遥测或云服务。 - Profiler 输出为派生元数据,其本身可能包含敏感的文件名、域名和路径。 请参阅[安全模型](docs/SECURITY_MODEL.md)、[隐私](docs/PRIVACY.md)和[证据输出](docs/EVIDENCE_OUTPUTS.md)。 ## `0.1.0-alpha.2` 版本中已实现的功能 - MailVault schema-v3 能力契约和只读预检。 - 必需的路径、表、列、索引、写入锁和 SQLite 完整性检查。 - 带有进度显示和源更改检测的 SQLite Online Backup API 快照。 - 对邮件、MIME 部分、参与者、关系和 blob 进行流式清单统计。 - 保留附件出现记录及精确的 SHA-256 内容标识。 - 文件名规范化和文件名历史证据。 - 相同哈希/不同名称 以及 相同名称/不同哈希 的检查发现。 - 有界的物理文件 stat 检查,具备保守的自动 worker 选择机制。 - 丢失、不可读、无效定位符、非常规文件和大小不匹配的检查发现。 - 按文件名、SHA-256、MIME、主题和发件人域名进行游标分页的清单搜索。 - 包含文件名变体、邮件出现记录和技术检查发现的内容对象详细信息。 - 针对行、对象、页面和字节的结构化进度事件。 - Windows Tauri 桌面应用程序和无头 CLI。 - 证明源数据库保持逐字节不变的综合测试覆盖。 ## 产品导览 ### 实时物理配置文件 ![带有结构化进度的实时元数据清单](https://static.pigsec.cn/wp-content/uploads/repos/cas/7d/7d02875e83f5f30411165e75e47438c8ac5a843ae47dfccbece3a09a40d8c939.png) ### 精确的二进制清单 ![游标分页的精确二进制清单](https://static.pigsec.cn/wp-content/uploads/repos/cas/c7/c75716cfa3a081f1db02577ec37ae913375c4a32a48775716fb65b3d9e298da1.png) ### 技术检查发现 ![按严重性和代码筛选的检查发现](https://static.pigsec.cn/wp-content/uploads/repos/cas/82/825adc608741447305ab7b702be27ca984516c43f233ae8c74c9efe4a67b9195.png) ### 内容对象证据 ![包含文件名和出现记录历史的内容对象详情](https://static.pigsec.cn/wp-content/uploads/repos/cas/7b/7b5cc2ca45561eb547ea40cfb1d7da94c9e85755e1fd986730e1660b4bac8890.png) ### CLI 工作流 ![已脱敏的 PowerShell 工作流](https://static.pigsec.cn/wp-content/uploads/repos/cas/6f/6fc7888016140561933f5befa391000fd1c77f0e1d43fbb9c87c95bbfd844d34.png) 所有文档图片均使用已脱敏或合成的路径与元数据。本仓库中不存储任何私人归档内容。请参阅[截图政策](docs/SCREENSHOTS.md)。 ## 下载与安装 1. 打开[最新的 GitHub 发布版本](https://github.com/FireXCore/mailvault-collection-profiler/releases)。 2. 下载以 `-setup.exe` 结尾的 Windows x64 NSIS 安装程序或 MSI 包。 3. 根据附带的 `SHA256SUMS.txt` 验证安装程序。 4. 安装应用程序。未签名的 alpha 版本可能会触发 Windows SmartScreen。 5. 将归档、profiler 工作区和运行时证据保留在不同的目录中。 布局示例: ``` D:\MailVault-Demo D:\MailVault-Profiler-Workspace D:\MailVault-Profiler-Evidence ``` 完整说明:[Windows 安装](docs/INSTALLATION_WINDOWS.md)。 ## 使用桌面应用程序进行首次分析 1. 停止 MailVault 同步、导入或维护活动。 2. 选择 MailVault 归档根目录。 3. 运行**只读预检**。 4. 确认 `Source contract is compatible`(源契约兼容),schema 为 `v3`,且写入锁 `absent`(不存在)。 5. 在 MailVault 归档之外选择一个空的工作区。 6. 创建物理清单。 7. 查看**物理清单**、**检查发现**以及各个内容对象的详细信息。 目前,应用程序将活跃的 profiler 运行保留在进程内存中。如果在查看之前关闭应用程序,意味着现有的工作区暂时无法通过 GUI 重新打开。 ## CLI 快速入门 ``` .\target\release\mailvault-profiler.exe preflight ` --archive "D:\MailVault-Demo" ``` 机器可读的预检: ``` .\target\release\mailvault-profiler.exe preflight ` --archive "D:\MailVault-Demo" ` --json ``` 完整的配置文件: ``` .\target\release\mailvault-profiler.exe profile ` --archive "D:\MailVault-Demo" ` --workspace "D:\MailVault-Profiler-Workspace" ` --batch-size 1000 ` --file-stat-workers 0 ` --file-stat-batch-size 512 ` 1> profile-result.json ` 2> profile-progress.jsonl ``` 证据级包装器: ``` powershell -NoProfile -ExecutionPolicy Bypass ` -File .\scripts\run-real-archive-profile.ps1 ` -ArchiveRoot "D:\MailVault-Demo" ` -WorkspaceRoot "D:\MailVault-Profiler-Workspace" ` -EvidenceRoot "D:\MailVault-Profiler-Evidence" ``` CLI 将结构化进度事件写入 `stderr`,并将最终的分析结果写入 `stdout`。 请参阅 [CLI 参考](docs/CLI_REFERENCE.md)。 ## 权威私人基准 当前的适配器和验收门限基于提供的私人 MailVault 归档: | 指标 | 观测值 | |---|---:| | 归档规模 | 约 20–30 GB | | 邮件 | 17,296 | | MIME 部分 | 54,450 | | 附件出现次数 | 21,946 | | 唯一的附件 SHA-256 值 | 13,592 | | Blob 行数 | 13,684 | | 邮件关系 | 12,115 | | 参与者行数 | 51,101 | 这些值是发布证据,而不是硬编码的兼容性要求。详情请参见 [`docs/REAL_ARCHIVE_BASELINE.md`](docs/REAL_ARCHIVE_BASELINE.md)。 ## 从源码构建 要求: - Rust `1.97.1`,由 `rust-toolchain.toml` 指定; - 推荐使用 Node.js `24`,支持 `22+`; - npm `10+`; - Visual Studio 2026/Build Tools,需包含**使用 C++ 的桌面开发**; - Windows 10/11 SDK 和 WebView2 Runtime。 在 x64 Visual Studio Developer Command Prompt 中运行构建: ``` call "C:\Program Files\Microsoft Visual Studio\18\Community\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64 cd /d D:\mailvault-collection-profiler npm ci powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\quality.ps1 npm run tauri -- build ``` 详细设置:[开发](docs/DEVELOPMENT.md)和 [Windows 安装](docs/INSTALLATION_WINDOWS.md)。 ## 文档 | 文档 | 用途 | |---|---| | [文档索引](docs/INDEX.md) | 完整的用户、安全、技术和维护者文档图谱 | | [入门指南](docs/GETTING_STARTED.md) | 从安装到检查发现审查的首次安全运行 | | [Windows 安装](docs/INSTALLATION_WINDOWS.md) | 安装程序和源码构建的前置条件 | | [GUI 指南](docs/GUI_GUIDE.md) | 集合设置、清单、检查发现和对象详情 | | [CLI 参考](docs/CLI_REFERENCE.md) | 命令、选项、输出流和退出行为 | | [证据输出](docs/EVIDENCE_OUTPUTS.md) | 证据包装器写入的文件和处理规则 | | [架构](docs/ARCHITECTURE.md) | Crate 边界和数据流 | | [安全模型](docs/SECURITY_MODEL.md) | 信任边界、不变性和威胁处理 | | [隐私](docs/PRIVACY.md) | 本地处理和敏感的派生元数据 | | [故障排除](docs/TROUBLESHOOTING.md) | 已知的 Windows、Rust、npm、Tauri 和归档错误 | | [路线图](docs/ROADMAP.md) | 已明确实现和推迟的功能 | | [发布流程](docs/RELEASE_PROCESS.md) | 维护者发布和验证流程 | | [راهنمای انتشار در GitHub](docs/GITHUB_PUBLISHING_GUIDE_FA.md) | راهنمای فارسی کامل برای تنظیم مخزن و انتشار Release | | [تحویل آماده‌سازی مخزن](docs/REPOSITORY_RELEASE_HANDOFF_FA.md) | ترتیب عملی Push، تنظیم Labelها، Gate و Release | ## 项目状态与限制 此版本中未实现: - 在桌面重启后重新打开现有的 profiler 工作区; - 面向用户的暂停、恢复和取消控制; - 完整的 SHA-256 固定性校验; - Siegfried/PRONOM 精确格式识别; - 容器扩展和 JHOVE 验证; - OCR、语义提取、embeddings、LLM 或采购分类; - 应用程序自动更新; - 已签名的 Windows 安装程序。 请参阅[实现状态](docs/IMPLEMENTATION_STATUS.md)和[路线图](docs/ROADMAP.md)。 ## 贡献与支持 在更改证据契约、快照行为、权威定位符处理或 profiler 迁移之前,请阅读 [CONTRIBUTING.md](CONTRIBUTING.md)。请使用结构化的 issue 表单,切勿附加真实的归档、EML 文件、附件、profiler 数据库或敏感日志。 - 支持:[SUPPORT.md](SUPPORT.md) - 安全报告:[SECURITY.md](SECURITY.md) - 行为准则:[CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) ## 许可证 Apache License 2.0。请参阅 [LICENSE](LICENSE) 和 [NOTICE](NOTICE)。
标签:MITM代理, SQLite, 代码示例, 只读分析工具, 可视化界面, 数据分析, 数据完整性校验, 电子邮件归档, 通知系统