SkillAgentSearch skills...

SteganographierGUI

将文件隐写进MP4/MKV文件中 (Embed files into MP4/MKV files.)

Install / Use

/learn @cenglin123/SteganographierGUI
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

SteganographierGUI

将文件隐写进MP4/MKV文件中

请确保在理解“后缀名”这个词含义的前提下观看以下教程,如不理解,请首先搜索“如何改后缀名

如果改了后缀还是为 MP4 ,那说明没有开启后缀名显示,请依然搜索上述内容

解压不了(|怎么是视频|密码错误|文件损坏|需要分卷|等)

改 MP4 后缀为 .zip 用 WinRAR 解压

改 MP4 后缀为 .zip 用 WinRAR 解压

改 MP4 后缀为 .zip 用 WinRAR 解压

WinRAR分享提取码c9ar


隐写者简要用法说明

本软件可以把文件或文件夹变成压缩包后“藏”进 MP4/MKV 视频里伪装成视频,这种操作叫隐写,伪装成视频的压缩包称为隐写文件。 生成的隐写视频用播放器播放时就是普通视频;但如果把后缀名改成 .zip,就能用解压软件把里面的隐藏文件提取出来。

支持两种操作方式:

  • GUI 模式:直接双击运行,拖文件进去,一键隐写或解隐写,最简单。
  • CLI 模式:通过命令行参数操作,适合批量或集成到其他工具。

常见解压方法:

  • WinRAR:直接改后缀为 .zip,即可解压(推荐用 WinRAR6)。
  • 7-zip/Bandizip:用 #号模式 打开,或命令行解压。
  • 手机端:安卓用 RAR,iOS 用解压专家。

辅助功能:

  • 密码本:在 modules/PW.txt 里逐行写好常用密码,程序解隐写时会自动尝试匹配,免去手动输入。
  • 哈希修改:上传网盘前可改文件哈希,避免炸链牵连。
  • 验证码生成:把提取码转成验证码图,防止被爬虫抓取。
  • 右键菜单集成:一键加入右键操作,像解压软件一样方便。

其他解除隐写方法(根据自己所用的解压软件对号入座)


更新

2025/06/28 更新 1.3.1 版本

新增工作模式 mp4(zarchiver) ,此模式生成的隐写文件可以被 zarchiver 及 解TMD压 等从开头扫描压缩文件的解压软件解压,但是无法被从尾部扫描压缩包的 WinRAR 解压,可根据情况使用。


隐写者 GUI&CLI两用的MP4/MKV隐写程序

作者: 层林尽染

使用说明

本程序可以将文件或文件夹隐写到视频文件中,或从视频文件中提取隐写的文件或文件夹。程序支持命令行界面 (CLI) 和图形用户界面 (GUI) 两种模式。

  1. GUI 模式: 【推荐】双击直接运行程序,不带任何参数。关于GUI的用法详见演示视频

  2. CLI 模式: 使用以下参数运行程序:

    -i, --input     指定输入文件或文件夹的路径。如果不使用任何参数标签,程序会将第一个未知参数视为输入路径。
    -o, --output    1. 指定输出文件名(包含后缀名) [或] 2. 指定输出路径(默认为原文件名+"_hidden.mp4/mkv")。
    -p, --password  设置密码 (不指定则无密码)。
    -t, --type      设置输出文件类型 (默认为mp4),支持mp4和mkv两种格式。
    -c, --cover     指定外壳MP4视频(如果不指定,程序会按照以下顺序搜索:
                       - 程序同目录下的cover_video文件夹下
                       - 程序所在目录下
                       - 输入文件或目录的所在目录下)
    -r, --reveal    执行解除隐写 (如果输入文件不是隐写文件则不进行任何操作)
    

使用示例

  1. 隐写文件:

    python Steganographier.py -i "input.txt" -o "output.mp4" -p "password" -t "mp4" -c "cover.mp4"
    python Steganographier.py -i "input.txt" -o "outputFolder" -p "password" -t "mp4" -c "cover.mp4"
    
  2. 隐写文件夹:

    python Steganographier.py -i "inputFolder" -o "outputFolder" -p "password" -t "mp4"
    python Steganographier.py -i "inputFolder" -o "output.mp4" -p "password" -t "mp4"
    
  3. 解除隐写提取文件:

    python Steganographier.py -i "input.mp4" -r -p "password"
    
  4. 若仅指定输入文件,则使用默认设置:

    python Steganographier.py "input.txt"
    

注意事项

  1. 如果没有指定输出文件路径,程序会在输入文件同目录下创建默认的输出文件,文件名为原文件名 + _hidden.mp4/mkv
  2. 如果指定了输出路径但没有指定文件名,程序会在指定输出路径下创建一个默认的输出文件,文件名为原文件名 + _hidden.mp4/mkv
  3. 如果输入路径是一个文件夹,程序将隐写整个文件夹。
  4. 如果没有指定外壳MP4视频,程序会按照以下顺序搜索:
    • 程序同路径下的 cover_video 文件夹
    • 程序所在目录
    • 输入文件或目录的父目录
  5. 程序会在程序同路径下查找 cover_video 文件夹。如果该文件夹存在,程序会在其中搜索 .mp4 文件。如果该文件夹不存在,程序会跳过这一步,继续在其他位置搜索。
  6. 解除隐写时,如果输入文件不是隐写文件则不进行任何操作。

Full Changelog: https://github.com/cenglin123/SteganographierGUI/compare/v1.1.0...v1.1.1

摘要

为了探索秒传链接失效之后国内网盘资源分享的安全问题,本文推荐了一种以 MP4 文件为外壳的文件隐写方法,并进行了压力测试 ,初步证明了方法的有效性。同时分享了对使用隐写技术时的一些经验和使用建议。通过进一步控制变量测试 ,探讨了评论区地毯式炸链的机制,得出其原因是恶意举报,证明了隐写文件的优势:①无法在线解压,②违规可申诉。然后讨论了百度网盘的审核机制以及举报的原理。提出了应对恶意举报的一些策略

本程序的代码在 GitHub 上开源,大家有任何建议欢迎提 issue。

1. 前言

如今,国内各大网盘审查政策日趋严格,分享链接炸链的可能性越来愈大。

传统来说,我们采用带密码的多层压缩包/分卷压缩包来应对审查问题。这样的做法非常麻烦,并且当层数多、文件大时,频繁解压对于硬盘的损耗也是难以忽视的。围绕这个问题,过去产生了多种利用网盘特性进行秒传的解决方案,但是随着网盘政策的收紧,这些方案大多已经失效或名存实亡 。

秒传方案失效以后,基于国内网盘的资源分享重新回到了加密压缩包的形式,分享者开始不可避免地要和网盘的分享及审核系统打交道,加之举报分享链接的资源倒卖者 (倒狗) 横行,炸链又开始频频出现,有时候甚至地毯式发生,分享环境日趋恶劣 。

综上,这使得研究和开发更加隐蔽、安全的数据传输方法变得尤为重要,在这样的艰难情况下,本文介绍的文件隐写技术有望成为后秒传时代的安全分享新方案。

2. 方法介绍:把文件隐写到MP4文件中

本程序受到仓库文章(以下简称文章[1])的启发,利用文件隐写技术来隐藏数据从而绕过常规审查。

隐写技术通过将数据嵌入到其他媒体文件中,使数据的存在对于普通观察者而言不可见,从而实现在不引起注意的情况下进行信息传输。

隐写技术已经有很多先例,传统做法主要有 图种[X7] ,即把数据嵌入图片中,表面上看起来是一张图片,但修改后缀名后可以解压然后得到隐藏的数据。

图种的原理如下:

copy /b "图片.jpg" + "压缩包.zip" "生成目标.jpg"

但是这样的做法容易引起怀疑,毕竟一张清晰度分辨率都并不算高的图片居然有几个G,并且还有非常高的下载转存记录,这实在太可疑了[1]

因此,考虑伪装的有效性,使用 MP4 文件作为隐写的外壳文件更为合理一些,大视频引起怀疑的可能性显然低于大图片。

我们的目标是通过隐写伪装来降低可疑度,从而尽可能以最低的成本实现安全分享。因为假如被频繁举报,即使压缩包层数再多,密码再复杂,在已经被强烈怀疑的情况下大概也回天乏术。因为对于网盘而言,无法解密又被大量举报的文件最省事的方式就是一刀切判定违规(参考这个试验[5])。

自然界最好的防御不是叠甲,而是伪装

具体实现方面:将 ZIP 格式的压缩包嵌入到比如海绵宝宝这样的普通 MP4 视频文件中,当文件以 MP4 格式被打开时,只能看到海绵宝宝的视频,看不到 ZIP 部分;而当文件名改为 ZIP 以后,解压软件(如WinRAR)可以寻找到 ZIP 部分进行正常解压。如此实现文件的低成本安全分享。

3. 程序功能简介

虽然文章[1]提供了一个有效的代码实现用于文件隐写,但该方法缺乏一个简单易用的操作界面,这限制了其推广与普及。

本程序在文章[1]的基础上进行简化,开发了一个包含图形用户界面(GUI)的隐写程序,使用户能够通过简单的拖放和点击操作完成文件的隐写和解隐写。

2024.4.24 新增:根据文章[2]提出的方法,也可以把文件以附件的形式嵌入到MKV文件中,在 v1.0.2 版本中新增了此逻辑。

4. GUI设计与功能介绍

本程序允许通过输入密码拖入文件的方式来直接进行文件的隐写和解隐写。

程序具有以下特点:

(1) 一体化:既可以进行隐写,也可以在同一个界面进行解除隐写操作,提升了程序的整体效率和便利性。 (2) 拖放功能:支持拖放文件或文件夹到指定区域,简化了文件选择的过程。 (3) 通用性:产生的隐写 MP4 文件可以手动修改后缀名解压,并不强制要求使用本程序(4) 密码保护~~必须~~~~输入密码才能进行隐写或解隐写操作。~~ v1.0.6 版后允许不指定密码。 (5) CLI 调用: 可在终端窗口中使用指令操作,或被其他应用作为第三方程序调用(1.1.0版本更新) (6) 右键菜单集成:可以集成到鼠标右键菜单,以类似常见压缩软件的逻辑进行操作(1.2.0版本更新)

  • 演示视频

  https://youtu.be/ztjKF8FPIM0

  • GUI界面

  • 哈希修改器

哈希修改器的适用场景为传火、补档 ~~或者传和谐文件到网盘~~ 前处理工作,上传文件之前需要修改哈希值以防止炸链牵连到原分享文件

哈希修改的原理类似于隐写,在文件的后面贴 1 个随机字节,使得文件的 MD5 值发生变化。

注意隐写者本身会自动进行哈希随机化处理,哪怕原文件是同一个,每次生成的隐写文件哈希值都不一样,正常隐写文件时不必考虑哈希值问题。

3e78f26da4d708e61049a599cde829e3.webp

  • 验证码生成器

使用验证码生成器处理提取码,可以防止被爬虫爬取到链接

d72d3b79e10f0e412d7bd101a3058db1.webp

示例如下:

d55ef7164a6e579b01534ea1dd88eb7f.webp

  • 右键菜单集成

在 v1.2.0 版中,新增了可以集成软件到右键菜单的安装脚本和卸载脚本,双击执行即可安装/卸载。功能基于 CLI 模式(默认选择 cover_video 文件下第一个视频)。目前暂时不能处理密码、选择视频等详细操作,如果需要进行这类操作,可以选择右键-打开隐写者GUI

d36f4b4f035cdf963cc481991cfa44e8.webp

20240801-v1.2.0.1 版本,进一步集成哈希修改器功能

ef0d856f69b62f7baf724a774cc83bc4.webp

以下为详细操作演示

fa9b0e5590c07a7c7bc88a016b48eb54.gif

  • 密码本

20240828-v1.2.1 版本:解除隐写逻辑新增密码本功能,在 modules/PW.txt 中分行输入密码即可,解除隐写时程序会在密码本中搜索密码并尝试解压(CLI模式和右键菜单一并适配),支持 解TMD压 格式的密码本,如下图:

eaf2b59d2d9d6fb5205c1095e1df3990.webp

5. 经验与技巧分享

5.1 资源分享的几个安全级别

(1) 直接上传&分享:真的勇士,总是敢于直面惨淡的人生和淋漓的鲜血,以及炸链、封号等一系列挫折。

(2) 单层/多层压缩包:有密码并加密文件名就能防止网盘扫描压缩包中的内容,一定程度上可以抵抗审查,但是无法防止在线解压(手机端可以在线解压包括7z在内的压缩包格式,大于20GB的压缩包目前无法在线解压,但不建议上传这种大文件),如果没有密码,那么参考 (1)

(3)-1 分卷压缩包:由于分卷压缩包无法在线解压,安全性较2提高了很多(是否改后缀名,或者有没有混淆文件并无太多影响) 。 (3)-2 自解压格式压缩包:格式为exe的压缩包,不需要安装解压软件,直接执行就可以解压。自解压文件也不能在线解压,安全性与分卷压缩包为同一级别。

(4) 其他专有格式的加密文件:包括但不限于 Cryptomator 、VeraCrypt 等专有格式加密文件。相比于较为通用的压缩包,网盘方不太可能搭载能够解密这些专有格式的功能,所以安全性高于前者。不过无法应对大量举报造成的强制违规。

(5) 隐写文件:这里指 JPG/PNG/MP4/MKV 等隐写文件,从加密技术层面来看,隐写文件属于3这个级别(隐写文件也不能在线解压,会提示压缩包损坏)。由于其伪装能力强的特性,可以较好混淆审查。不怕举报造成的强制违规,可以申诉(详见 5.3 节)。因此安全性高于上述所有。

(6) BT、IPFS、自建网盘:去中心化分享一般来说无法被举报,所以安全性是顶级,自建网盘也是同理。关于举报相关的内容,会在 5.3、5.6 节详细讨论。

总的来说,根据 【1. 能否加密】 【2. 能否在线解压】 【3. 能否被举报】这三个点,可以把分享方式大致划分出 3 个大的安全级别。

关于网盘分享的安全级别排名,感兴趣可以进一步看这篇文章[8]。

5.2 隐写文件安全性来源:低可疑度

在选择文件和隐写内容时,需要根据分享资源的大小选择合适的外壳文件,看上去要合理,不至于让人怀疑

比如你的资源大小有 3 个 GB,此时最好就不要选 1、2 分钟的短视频,因为这不太合理,容易让人怀疑;最好选择一个时长 1 到 2 小时的长视频。可以选择低清晰度的电影或者b站上的网课类长视频,这类视频的 360P 大小通常在 300MB 以内。

我也在程序中提供了几个供参考的长视频,大家可以按需选用。我认为,使用少量的额外流量换取安全性还是比较划算的

下面是个人推荐的资源大小-外壳时长参考表。

| 资源大小 | 视频时长推荐 | | --------- | -------- | | 0-200MB | 1-3分钟 | | 200-400MB | 3-15分钟 | | 400-500MB | 15-30分钟 | | 500MB-1GB | 30分钟-1小时 | | 1GB-3GB | 1小时 | | 3GB-4GB | 2小时 | | 4GB以上 | 2小时以上 |

推荐下载 B 站的视频作为隐写的外壳文件,B 站压制视频较为专业,3 分钟的视频可以保证在 10 MB 以内,注意不要下到可能会涉及版权问题的视频,比如番剧、UP 充电专享视频等。不放心的话可以搜索“公有领域”关键词来查找视频,公有领域视频都不会涉及到版权问题。

隐写外壳下载工具(B站视频下载工具) https://github.com/leiurayer/downkyi

建议的下载参数,画质可以选择 480P 以下,通常不会很糊;但音质建议中质量,否则糊得太明显容易引起怀疑;视频编码选择 H.265 压缩率更高,视频体积更小

对于过大的资源 (>4GB),可以采用分文件夹或分卷处理的方式,嵌入的外壳视频可以为按顺序分集的动画,这样可疑度会更低一些。目前程序在版本 1.1.2 之后新增了隐写不合理的提醒。

5.3 基于隐写的申诉补档技巧

隐写文件的区别于其他网盘分享方式的主要特点为:不容易炸链,且 违规可申诉

所谓不容易炸链,是指隐写虽然被举报到一定数量(这里用“少量”指代 ),会**短暂地进入审核状态,表现为【暂时冻结】或【正在审核】,但是过5-10分钟可自行恢复正

Related Skills

View on GitHub
GitHub Stars802
CategoryDevelopment
Updated2h ago
Forks52

Languages

Python

Security Score

95/100

Audited on Mar 30, 2026

No findings