ultrathinker/matrishka
GitHub: ultrathinker/matrishka
将任意文件加密嵌入外层视频中,外层视频正常播放而隐藏内容通过密码经本地 HTTP 回环实时解密流式传输,实现隐蔽存储与可否认性。
Stars: 0 | Forks: 0
# Matrishka
[](LICENSE)


Matrishka 的招牌绝活是**视频嵌套**:它将一个加密视频嵌入到另一个视频中。
外层视频可以在任何媒体播放器中正常播放,而隐藏的视频会通过本地 HTTP 回环实时解密,
并流式传输到播放器——任何数据都不会以明文形式写入磁盘。但隐藏的不仅仅是视频:你可以
将**任何文件**(文档、压缩包、照片等)存入外层视频中,并在之后通过密码进行恢复(files 模式支持
使用一个主密码打包多个文件)。关于该功能能防范和不能防范的威胁,请参阅下方的**威胁模型**部分。
## 截图
| 选择操作 | 隐藏视频 | 提取 |
|:---:|:---:|:---:|
|  |  |  |
同一个可执行文件也是一个完整的 CLI(见下文)—— GUI 只是对其进行了封装。
## 状态
v0.3.0 —— 当前的文件格式(外层视频 + slot 区域 + 74 字节尾部 + 加密的 TOC,
设计上没有 magic bytes)。纯净的 `Release` 构建,在 Linux、
Windows 和 macOS 上通过 `.github/workflows/ci.yml` 中的 CI 矩阵实现了 **79/79 项测试全部通过**。CLI 和 Avalonia
GUI 均通过单个二进制文件分发。
## 下载 / 构建
目前还没有预编译的发布产物——要运行 matrishka,请从
源码构建二进制文件。为任何平台生成自包含单文件可执行程序的推荐方式是使用 [`build.sh`](build.sh):
```
./build.sh # builds for all platforms: linux-x64, linux-arm64, win-x64, osx-x64, osx-arm64
./build.sh linux-x64 # …or just one target
```
该脚本只是封装了对
`src/Matrishka.App/Matrishka.App.csproj` 执行的 `dotnet publish -r
--self-contained true -p:PublishSingleFile=true`,
并将输出精简为纯粹的可执行文件。
结果:`dist//matrishka`(在 Windows 上为 `matrishka.exe`),大小约 58 MB,目标
机器上无需安装 .NET runtime。你可以将其放在 `PATH` 中的任意位置并运行。
**开发构建**(需要 .NET 10 SDK):
```
dotnet build -c Release
# 位于 src/Matrishka.App/bin/Release/net10.0/matrishka(.exe) 的二进制文件
```
有关运行测试套件的信息,请参阅下方的[测试](#tests)部分。
## 支持的容器
| 格式 | 扩展名 | 封装方式 | 隐蔽性 |
|---|---|---|---|
| **MP4 家族** (ISO BMFF) | `.mp4` `.mov` `.m4v` `.3gp` `.3g2` | 16 字节 `free` box | 高(有效的 MP4 填充) |
| **Matroska / WebM** (EBML) | `.mkv` `.webm` | 9 字节 EBML Void | 中(多数播放器会忽略) |
| **AVI** (RIFF) | `.avi` | 8 字节 RIFF JUNK | 中(多数播放器会忽略) |
格式通过嗅探前 16 字节内容来检测(文件扩展名仅供参考)。`secret` 可以是**任意二进制内容**——它不必与外层视频的格式匹配。
## GUI
运行不带参数的 `matrishka` 即可打开图形界面(基于 Avalonia,跨平台)。窗口包含四个大卡片——Hide、Open、Save、Find——并支持从文件管理器进行拖放操作。
同一个二进制文件同时提供 UI 和 CLI 服务;其分发逻辑为:
```
matrishka → opens the GUI window
matrishka pack ... → runs CLI (any non-zero args)
```
## CLI
```
matrishka pack --secret --password [--secret --password ...]
[--label ] ... [--master ] [-o 标签:DNS 反向解析, HTTP工具, 信息隐藏, 多媒体处理, 批量测试, 数据加密, 视频隐写, 跨平台工具