systemslibrarian/meow-decoder

GitHub: systemslibrarian/meow-decoder

一个通过动画二维码在隔离环境进行加密文件传输的离线工具,解决无网络条件下的安全数据搬运问题。

Stars: 2 | Forks: 1

# 🐱 Meow Decoder

Meow Decoder Logo

通过空气偷偷传输字节 — 注重安全的二维码加密

Meow Decoder 让你仅用手机摄像头作为“笨”光学桥,在隔离计算机之间安全传输文件 — 动画二维码承载 AES-256-GCM 加密数据,具备前向安全性、后量子保护,并实验性支持否认特性。

为何选择它? 与基础的二维码泄密工具不同,Meow Decoder 增加了强身份认证加密、前向安全性、后量子选项。它包含实验性的否认性与胁迫特性,可能在随意检查时降低风险,但在高级取证分析下可能被探测到。不适用于没有额外操作安全措施的国家对手。

Security CI CodeQL Formal Verification Fuzzing Rust Crypto Security Suite Coverage OpenSSF Scorecard License: CC BY-NC-SA 4.0 Python 3.10+

😺 Cat Approved 🐾 9 Lives 😼 Hiss bugs caused by tail

🌐 实时演示 → meowdecoder.com

## ⚠️ 适用对象(以及不适用对象) | ✅ 适合你如果… | ❌ 不适合你如果… | |----------------|------------------| | 你是开发者/研究者 | 你想要一个消费级移动应用 | | 你需要隔离环境下的文件传输 | 你想要一键手机扫描 | | 你理解命令行工具 | 你需要即插即用的简便性 | | 你想自行审计加密 | 你需要企业级生产支持 | **⚖️ 法律声明:** Meow Decoder 并非用于规避执法或法律义务。隐写术与否认特性有限且在法医检查下可被探测。 **📜 预期用途:** 设计用于合法隐私需求,例如记者与消息来源保护(依据第一修正案或同等法律)。不用于非法活动。如对管辖权不确定,请咨询法律专家。 **诚实免责声明:** 这是一个 **开发者/研究工具**。它需要 Python、命令行舒适度,以及对所执行操作的理解。 ## 📱 移动伴侣应用 — 立即下载 [**Meow Capture**](mobile/README.md) — *用于隔离文件传输的离线二维码捕获伴侣。* 将手机摄像头对准屏幕上的动画二维码,让 Meow Capture 处理其余部分 — 无网络、无云、无痕迹。 ### 📥 Android 安装(旁路加载 — 免费) 1. 在 Android 手机上,进入 **设置 → 应用 → 特殊应用访问 → 安装未知应用**,并允许你的浏览器。 2. 在手机上打开此链接并点击 **下载**: **[⬇ 下载 Meow Capture v3.2.2 APK](https://github.com/systemslibrarian/meow-decoder/raw/main/releases/android/meow-decoder-v3.2.2-release.apk)** 3. 打开下载的 `.apk` 文件并点击 **安装**。 4. 启动 **Meow Capture** — 提示时授予相机权限。 ### 🍎 iOS — 即将推出 iOS 版本正在积极开发中。**Apple App Store 上线指日可待。** 在此期间,iOS 用户可通过 [网页演示](examples/wasm_browser_example.html) 扫描二维码。 ### 🏪 应用商店可用性 | 平台 | 状态 | |------|------| | Android(旁路加载) | ✅ 立即可用 — [上方下载 APK](#-install-on-android-sideload--free) | | Google Play 商店 | 🔜 即将推出 | | iOS 应用商店 | 🔜 即将推出 | | 功能 | 详情 | |------|------| | 扫描器 | VisionCamera v4(MLKit / AVFoundation) | | 安全模式 | 严格(后台时清除)或 便利 | | 导出 | 生物识别保护的 JSON → 下载、ADB 拉取、SHA-256 校验 | | 实时指导 | 解码速率、重复率、抖动、曝光提示 | | 预检 | 校准向导(5 步相机就绪检查) | | 诊断 | 隐藏长按面板 — JS 延迟、堆栈、发热、FPS | | 导入 | 扫描发送方屏幕上的请求二维码 — 无需 JSON 文件 | | 多设备 | `meow-decoder merge` CLI 合并两台手机的捕获 | | 测试 | 267 个通过,覆盖率 ≥95%,零网络权限 | ## ⏱️ 工作原理(60 秒) **问题:** 你需要在两台无法联网的计算机之间(隔离、敌对网络、零信任)传输文件。 **方案:** 将文件变成动画二维码,显示在屏幕上,用任何相机录制,然后在另一端解码。 ``` Sender: secret.pdf → meow-encode → Animated QR GIF ↓ (phone camera) Video File ↓ (transfer) Receiver: Video → meow-decode → secret.pdf (recovered) ``` **仅此而已。** 手机只是一个笨的光学传感器。所有加密都在可信计算机上完成。 ## 🎬 演示

Meow Decoder demo: Encode → Transmit → Decode

此演示展示 Meow Decoder 的 **明确机制**。 二维码故意可见,以便首次用户清楚了解正在发生什么。 ### 🔓 亲自尝试! **演示 GIF 包含一条真实加密的消息,你可解码:** | 演示文件 | 描述 | 下载 | |----------|-------------|------| | `demo.gif` | 标准 QR 动画 | [下载](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/a032835fe7063505.gif) | **密码:** `JesusIsTheSonOfGod` ``` # 下载并解码演示 curl -O https://static.pigsec.cn/wp-content/uploads/repos/2026/04/a032835fe7063505.gif meow-decode-gif -i demo.gif -o message.txt -p "JesusIsTheSonOfGod" cat message.txt ``` **隐藏消息:** John 3:16 (KJV) — *“因为神爱世人…”* ## 🚀 快速启动(5 分钟) ### 1. 安装 ``` pip install meow-decoder ``` 或从源码安装: ``` git clone https://github.com/systemslibrarian/meow-decoder.git cd meow-decoder pip install -e . ``` ### 2. 编码 → 传输 → 解码 ``` # 发送方:将文件加密为动画 QR GIF meow-encode -i secret.pdf -o secret.gif -p "YourStrongPassword123" # 接收方:从视频录制中解密 meow-decode-gif -i captured_video.mp4 -o recovered.pdf -p "YourStrongPassword123" ```
📹 录制与传输细节 **显示 GIF:** ``` open secret.gif # macOS xdg-open secret.gif # Linux start secret.gif # Windows ``` **录制:** 将手机摄像头对准屏幕 10–15 秒(GIF 自动循环)。 **传输:** 通过 USB、邮件或云将视频移动到接收计算机。视频在无密码时是加密的垃圾数据。 **解码:** 运行 `meow-decode-gif`,如上述所示。
**完成!** 文件以完整性校验恢复。 ## ✨ 核心特性 | 特性 | 描述 | |------|------| | 🔒 **AES-256-GCM** | 军用级认证加密 | | 🔑 **Argon2id** | 内存硬 KDF(512 MiB,20 次迭代) | | 📱 **隔离友好** | 任何相机即可传输,无需网络 | | 🛡️ **前向保密** | X25519 临时密钥(默认开启) | | 🐈‍⬛ **薛定谔模式** | 双重秘密可否认性 | | 🔮 **后量子** | ML-KEM-768(默认,Signal PQXDH)/ ML-KEM-1024(偏执)+ ML-DSA-65 混合 | | 📊 **喷泉码** | 容忍 33% 帧丢失(Python + JavaScript) | | 🔐 **胁迫模式** | 恐慌密码触发安全擦除 | | 🖥️ **硬件密钥** | HSM/PKCS#11、YubiKey PIV/FIDO2、TPM 2.0 绑定(`--yubikey`、`--hsm-slot`、`--tpm-seal`) | | 📊 **篡改报告** | 基于帧的 MAC 时间线与聚类检测 | | 📱 **移动桥接** | React Native QR 扫描应用,含 JSON 协议集成 | | 🌐 **WASM 目标** | 浏览器加密演示(`make build-wasm`,参见 [examples/](examples/)) | | 🎨 **多层隐写** | 六通道隐写(LSB+STC、时序、调色板、处置、注释、时序);非保证对抗国家级隐写分析([审计](docs/STEGO_AUDIT_REPORT.md)、[评估](docs/STEGO_STRENGTH_EVALUATION.md)) | ## 🐈 伪装模式(可选) 希望 GIF 看起来像无辜图片而非明显二维码?**使用你自己的猫照片!** ### 使用自定义载体图像 🐱 将加密二维码隐藏在自有图片中(推荐猫照片 ``` # 隐藏在单张猫咪照片中(循环遍历帧) meow-encode -i secret.pdf -o cats.gif --stego-level 3 --carrier my_cat.jpg # 隐藏在多张照片中(依次使用每张) meow-encode -i secret.pdf -o vacation.gif --stego-level 2 --carrier photo1.jpg photo2.jpg photo3.jpg # 对所有猫咪照片使用通配符模式 meow-encode -i secret.pdf -o cats.gif --stego-level 3 --carrier ~/Pictures/cats/*.jpg # 最大隐身模式(偏执级别 + 混淆) meow-encode -i secret.pdf -o innocent.gif --stego-level 4 --carrier *.png ``` ### 伪装层级 | 层级 | 名称 | 描述 | |------|------|------| | 0 | 关闭 | 纯二维码(默认) | | 1 | 可见 | 3 位 LSB,高容量,分析下可见 | | 2 | 微妙 | 2 位 LSB,平衡(推荐) | | 3 | 隐藏 | 1 位 LSB,几乎不可见 | | 4 | 偏执 | 1 位 LSB + 噪声混淆 |