何为隐写?有什么用?
隐写旨在不加密源数据的情况下,增强文件的隐私性。网盘被在线解压炸链接?拿到资源一头雾水无从下手?学会隐写解君愁。以下介绍两种最常见常用的隐写方式。
图种
你可能没听过这个名字,但你一定见过动辄几 G 的图片,将其简单修改扩展名后,图片摇身一变成为了压缩包,这便是图种。
如何制作
直接在cmd中输入:
copy /b photo.jpg + test.zip IamZip.jpg最终获得图种IamZip.jpg,修改扩展名为zip后正常解压。
以上仅作例子,图种并不局限于图片,使用视频,gif 等均可。
原理
其实就是直接将两个文件粘在一起,注意压缩包必须放在后面。
简单来说,媒体文件由文件头,数据
文件尾组成。由于图片在压缩包之前,多媒体软件读取到文件头后正常作为图片处理,读取到文件尾时标志结束,于是将后续的压缩包数据全部丢弃。
而解压软件由于要解压所有文件,因此会遍历文件,读取到图片文件头尾时不会丢弃,一直读取到压缩包的文件头后,标志有效压缩文件由此开始,于是丢弃了前面的媒体文件数据。
伪加密
你可能见过一些压缩包,明明作者说没有加密,解压时却要求输入解压密码,并且无论如何都不正确。这便是伪加密。
普遍来说,伪加密只适用于 zip 格式的压缩包。
首先解释一下,很多人对压缩包加密存在根本性的误解。
压缩包加密并不是把文件完整放进抽屉里锁好这么简单。实际上,压缩包加密是对所有数据进行移位,其实文件已经满身疮痍了。
这就是为什么现在破解压缩包的方法几乎只有字典暴力穷举。
原理
使用任意 16 进制编辑器打开 zip 压缩包,其中有三个重要组成部分
源文件目录区:
50 4b 01 02 标记此为源文件目录区
14 00 压缩文件所用软件版本
14 00 解压文件所需软件版本
00 00 通用标志位(标记是否加密,此为否)
08 00 压缩方式
目录区是伪加密的主要修改区域
源文件数据区:
50 4b 03 04 标记此为源文件数据区
14 00 解压所需软件版本
00 00 通用标志位(标记是否加密,此为否)
08 00 压缩方式
需要注意的是,压缩包中有几项文件,就有几项源文件数据区
源文件目录结束标志:
50 4b 05 06 标记此为源文件目录结束标志
剩下的不重要故略
如何制作
由于伪加密不真正对源数据加密,因此有:
伪加密: 源文件目录区 09 00 源文件数据区 00 00
真加密: 源文件目录区 09 00 源文件数据区 09 00
不加密: 源文件目录区 00 00 源文件数据区 00 00
使用16进制编辑器,修改为需要的样式即可
若压缩包内有多个文件,则需要对每个需要伪加密的文件的源文件数据区进行操作。
显然,对于伪加密的压缩包,只需要将源文件目录区后的 09 00 还原为 00 00 即可破解。
没啥用的碎碎念
相信你也想到了,可以将图种和伪加密结合在一起,并且由于压缩包的特殊性,可以衍生出一系列玩法。
还记得我说的压缩包中有几项文件,就有几项源文件数据区吗?没错可以只对压缩包中的指定文件放行。我们都知道压缩包是可以嵌套的。于是可以把加密过的压缩包套娃进一个压缩包,但是不进行伪加密,把解压密码放进同一个压缩包里,但是进行伪加密。又水一篇, 已经成为没有梦想的咸鱼了