请确保在理解“后缀名”这个词含义的前提下观看以下教程,如不理解,请首先搜索“如何改后缀名”
解压不了(|怎么是视频|密码错误|文件损坏|需要分卷|等)
改 MP4 后缀为 .zip 用 WinRAR 解压
改 MP4 后缀为 .zip 用 WinRAR 解压
改 MP4 后缀为 .zip 用 WinRAR 解压
摘要
为了探索秒传链接失效之后国内网盘资源分享的安全问题,本文推荐了一种以 MP4 文件为外壳的文件隐写方法,并进行了压力测试[3] ,初步证明了方法的有效性。同时分享了对使用隐写技术时的一些经验和使用建议[4] 。通过进一步控制变量测试[5] ,探讨了评论区地毯式炸链的机制,得出其原因是恶意举报[6] ,证明了隐写文件的优势:可申诉性[7]。然后讨论了百度网盘的审核机制以及举报的原理[8]。提出了应对恶意举报的一些策略[10]。
本程序的代码在 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版本更新)
哈希修改器的适用场景为传火、补档 或者传和谐文件到网盘 前处理工作,上传文件之前需要修改哈希值以防止炸链牵连到原分享文件。
哈希修改的原理类似于隐写,在文件的后面贴 1 个随机字节,使得文件的 MD5 值发生变化。
注意隐写者本身会自动进行哈希随机化处理,哪怕原文件是同一个,每次生成的隐写文件哈希值都不一样,正常隐写文件时不必考虑哈希值问题。
使用验证码生成器处理提取码,可以防止被爬虫爬取到链接
示例如下:
在 v1.2.0 版中,新增了可以集成软件到右键菜单的安装脚本和卸载脚本,双击执行即可安装/卸载。功能基于 CLI 模式(默认选择 cover_video 文件下第一个视频)。目前暂时不能处理密码、选择视频等详细操作,如果需要进行这类操作,可以选择右键-打开隐写者GUI
20240801-v1.2.0.1 版本,进一步集成哈希修改器功能
以下为详细操作演示
20240828-v1.2.1 版本:解除隐写逻辑新增密码本功能,在 modules/PW.txt 中分行输入密码即可,解除隐写时程序会在密码本中搜索密码并尝试解压(CLI模式和右键菜单一并适配),支持 解TMD压 格式的密码本,如下图:
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分钟可自行恢复正常,免疫少量及以下的举报。
关于此特性的证明,参考这个试验[5]
这是以往的任何加密方法都做不到的,如上文所述,网盘对于无法解密又被大量举报的文件会倾向于直接判违规。
不过,隐写文件虽然不容易炸链,但是被大量或海量举报以后还是有可能炸链的(分别会提示“此文件禁止分享”或者“文件违规根据相关法律法规予以屏蔽”)。
当一个分享炸链以后,我们如果要对其进行补档,通常需要重新压缩以后再上传,之所以不能直接重新分享而要这样做,是因为违规文件的哈希值已经被网盘记录,再次上传或者分享网盘都认得这个文件(文件哈希值可以类比人类的指纹),这无疑费时费力,尤其是文件很大的时候,更是一场噩梦。
隐写文件的可申诉性给了我们另一种比较方便的解决办法:我们可以直接对违规文件进行申诉,然后重新分享即可,并不需要一次次地重新压缩上传进行补档。假如最近一直被人盯着举报,可以选择等待一段时间避过风头之后再申诉让文件“活过来”然后继续分享。
此外,面对大量恶意举报时,不建议用大号进行分享,而是建议只用大号上传和申诉,小号来分享,以避免封号可能造成的损失。详情可以参考这篇文章
[技巧分享] 百度网盘大号传小号分享的操作方法 [资源安全分享方案]
关于申诉技巧的更多细节,详见 这篇文章
5.4 适度的擦边也是伪装
另一方面,内容完全没有问题可能也不太好。
如果被大量举报,有可能会引起人工复查,一个视频明明看着完全没有问题,但却总是被举报色情,这也很可疑。
对此的一个建议是,假如你的资源可能面临大量举报的风险,可以使用各类性学相关或者能过审的哲♂学银梦等擦边但不至于被封的视频。
这样在面对大量举报时,可以最大程度降低暴露的风险,假如不幸被封,也可以合理化申诉理由。
具体大家可以发挥自己的想象力,这里只是示例,总之:
伪装的目的并不是让人挑不出毛病,而是让对方误判,大事化小小事化了。
7. 不足与展望
目前的程序仍然存在一些问题,比如合并方法是简单地将 ZIP 文件附加到视频文件的末尾、嵌入 MP4 文件的 moov box 或者 MKV 文件的附件中。这种方法虽然易于实现但也容易被检测到。
后续也许可以考虑使用一种更加隐蔽的方式,例如将 ZIP 文件的内容嵌入到视频文件的某些不太关键的部分,在每个 I 帧后插入一小段数据等。这类做法需要分析视频文件的编码细节,可能需要用到其他库如 FFmpeg 等,具体留待后续研究。
尽管如此,根据文章[1]的测试结果,以及本测试的结果,隐写具有:① 不易违规 ② 即使违规也可申诉 ③ 补档方便 等优势。在不被特意针对性举报的情况下,这样的隐写方法已经足以认为是一个可以推广的解决方案了。
今后随着技术的进一步完善,此类隐写方法或许能成为秒传之后安全分享的一个有效手段。
此程序权当抛砖引玉,欢迎各位积极参与研究。
隐写文件说明信息一键复制;
1. 外壳MP4文件为伪装视频,资源被隐写在MP4文件内部。
2. 解压方法:用 WinRAR 改 MP4 后缀名为 ZIP 然后解压。
8. 总结
本文介绍了资源分享手法到秒传链接为止的历史,证明了倒卖者是引起炸链的主要原因,提出采用隐写技术作为新时代的资源安全分享解决方案,同时分享了一些使用隐写技术时的一些经验和建议,希望能帮助资源分享者更好地活用隐写技术。
随着技术的进步和数字媒体的普及,隐写技术可能会有新的突破,除了之前提到过的插帧法隐写,还可能有深度学习 AI 驱动的隐写系统,这些都可能为资源分享安全问题提供新的解决方案。
矛与盾的对抗永不停息,新的时代在呼唤新的解决方案。
欢迎大家参与到隐写技术的测试和研究中来,共同推动其发展。如果大家对于本程序有什么进一步的改善要求和建议,欢迎在评论区提出,或者在 GitHub 上提 issue。
源代码:https://github.com/cenglin123/SteganographierGUI
9. 免责声明
本程序仅用于保护个人信息安全,请勿用于任何违法犯罪活动
10. 下载链接
附录A:隐写的指令
A.1 MP4隐写
copy /b "input.mp4" + "input.zip" "output.mp4"
python代码
import subprocess
cmd = [
'copy', '/b',
'input.mp4','+',
'input.zip',
'output.mp4',
]
subprocess.run(cmd, check=True)
A.2 MKV 隐写(使用 mkvtoolnix)
mkvmerge -o "output.mkv" "input.mp4" --attach-file "input.7z"
python代码
import subprocess
cmd = [
'mkvmerge', '-o',
'output.mp4',
'input.mp4',
'--attach-file',
'input.7z',
]
subprocess.run(cmd, check=True)
A.3 其他隐写技术
除了本文中提到的,还有一些其他文件的处理方法也算做隐写:
1. 比如把文件的二进制数据转译图像像素信息,然后得到一张毫无意义的图片进行存储;
2. 或者当成 8 位的 pcm 数据文件,然后封装转成 wav 文件,得到了一个伪装的毫无意义的 wav 文件,还可以再转成 flac 甚至混流进 mkv 里。
3. 又或者,通过直接修改文件头来快速进行格式伪装。
这些方法带来安全性的原理都是类似的,在 5.1 节中有讨论,不过以上方法在易用性上来说不如本文中提到的方法,因为这些方法的解码需要专门的软件,而本文提到的 copy /b 方法常见的解压软件都能解压。在便利性上来说更胜一筹。
附录B:MP4隐写技术相关系列文章(时间顺序)
主要内容
[1] [技巧] 用文件隐写来规避网盘和谐 [2] [工具分享] 隐写者:把资源嵌入MP4文件的隐写工具 [资源防炸链解决方案倡议&规避网盘审查技巧探讨] [3] [技巧分享] 隐写分享压力测试阶段性报告 [资源防炸链解决方案倡议] [4] [技巧分享] 后秒传时代如何避免资源分享炸链 [资源防炸链解决方案倡议] [5] [技巧分享] 关于评论区地毯式炸链现象的一些测试及初步猜想 [资源防炸链解决方案倡议] [6] [技巧分享] 关于此评论区地毯式炸链的真实原因及补档相关说明 [资源防止炸链解决方案倡议] [7] [技巧分享] 后秒传时代的安全分享路在何方?为什么我们需要隐写? [资源分享传火呼吁&隐写用法释疑] [8] [技巧分享] 网盘资源分享的几种安全级别、审核与举报,分享建议 [资源防炸链解决方案倡议] [9] [技巧分享] 隐写文件误区及申诉补档建议、百度云批量申诉工具 [资源防炸链解决方案倡议] [10] [技巧分享] 如何应对恶意举报 - 百度云篇 - 其一 [资源防炸链解决方案倡议] [11] [技巧分享] 如何应对恶意举报 - 百度云篇 - 其二 [资源安全分享方案倡议] [12] [技巧分享] 百度网盘大号传小号分享的操作方法 [资源安全分享方案]延伸阅读
[X0] [1] [技巧分享] 防炸教程:如何安全分享资源? [X1] [技术分享] 如何在.mkv格式视频里夹带隐藏文件,附带mkvtoolnix,MkvEdit和gMKVExtractGUI工具 [X2] [杂谈] 给新司机的一个简单的科普 (笔者注:此文是关于安全分享的科普) [X3] [技巧分享] IPFS分享资源快速上手及其适用场景浅议 [资源防炸链解决方案] [X4] [技巧] 利用网盘离线下载分享规避审查 [X5] [技巧分享] [自建网盘] 自建网盘cloudreve+离线下载 [X6] [高阶文章] 关于新时代文件分享机制的思考 (笔者注:此文介绍了除网盘外的其他分享方案) [X7] [技巧分享] 图种的制作与使用 [X8] [技巧分享] 防炸教程 (笔者注:本文介绍了网盘常用的分享方案,不过作者有可能要吃电脑屏幕了) [X9] [教程] BitTorrent (种子文件) 扫盲 [绅士仓库 tracker 更新] [2020 Rev] (笔者注:本文是磁力做种的教程) [X10] [技巧分享] [IPFS] 无法被举报的文件分享神器CRUST IPFS操作指南 PART.I ( IPFS 托管平台教程) [X11] 关于百度近日封号的相关措施 (此文也是秒传时代的开端) [X12] [南+] 本坛还是有牛马用户啊,低能儿请远离互联网好吗?一口一个敬语问我要资源下载了之后反手就去微软举报,你咋不去网信部举报?说不定给你颁一个好市民奖 [X2] [南+] 看看单纯的举报行为会对百度网盘资源有多大的影响
又学习了,非常好文章
大佬辛苦,希望这篇文章能让更多人看到,也不用问出解压错误这种问题了
太专业了
以上评论亮了
太专业了
大佬辛苦,希望这篇文章能让更多人看到,也不用问出解压错误这种问题了
为啥双击打开 闪了一下就没了?
@teligong123 检查一下是不是被杀毒软件干掉了
又学习了,非常好文章