欢迎光临散文网 会员登陆 & 注册

图种制作基本教程

2020-03-05 14:49 作者:EternalGravity  | 我要投稿

将一或多个压缩文件复制进图片格式的文件,得到的就是简单的图种。操作如下——

选择作为载体的图片和要隐藏的压缩文件。为了方便定位,可以把它们放在同一个文件夹下。

图片载体本身只有40.7KB。现在将这一组图片和一个视频分别打包为压缩文件:

打开cmd,进入到当前文件夹后,输入复制命令:

如"copy /b 1.jpg + 2.zip 1.jpg"

语法很简单,copy /b [图片载体] + [隐藏文件1] + [隐藏文件2] + … [图片载体],表示将图片和隐藏文件一同复制到图片本身。得到的简单的图种:

图种仍然是可以正常打开的,因为其中包含图片本身的信息,且此时后缀名仍为jpg。

接收方要想获取图种中隐藏的文件,只需要更改后缀名为压缩文件(rar、zip、7z等)并解压即可。

需要注意的是,直接进行解压只能获得一个压缩文件。如果图种中的隐藏文件只有一个,则使用不同解压软件都可以得到这一文件;但若像上面举的例子那样隐藏了两个文件,经试验可以发现,使用不同解压软件可能得到不同的结果,如360压缩解压得到了视频,而winrar解压得到了那一组图片——都只得到了一个压缩文件。 

最基础的部分到这里结束,下面讲的是如何从图种中获取多个文件或指定文件。

从刚才的例子可以看出,一个图种中藏入两个文件是容易获得的(只藏一个就更容易了)。那么,如果想让接收方多费点心思才能获得隐藏文件呢?

应该能想到,最简单的方式是多加几个文件。比如下面这个例子:

Key社出品,必属精品

这是一个已制作好的图种,其大小约为90MB。向其中添加的文件按顺序为两张图片,一个视频(目标文件),两张图片(图片用作幌子)。这样,即使用不同解压软件,也只能得到首尾两张图片。

想获取其中全部的压缩包,需要一些额外的操作。

为什么解压软件只会解压一个压缩包?实际上,不同后缀的压缩文件有着不同却固定的格式。解压软件扫描文件,在读到第一个压缩包(具体是顺序读还是逆序读因软件而异)的头部时开始工作,直到其尾部便停止,因而忽略了后续的信息。

那么,就要提醒解压软件扫描全文。一个简单的办法是使用压缩包修复,这个功能部分解压软件是自带的(比如winrar),当然也可以去网上找专门的修复工具。以刚才的例子:

点击修复,得到一个新的压缩包:

正常解压,就可以得到全部的五个压缩包内的文件:

这可能是最简单的方法了,而且效果足够好。不过,如果有兴趣,可以继续看下文的另一种方法——稍微复杂却更具有启发性:从文件编码入手,但首先,你需要一个能将文件以二进制或十六进制格式打开的工具(别再尝试记事本打开了),比如010Editor就挺好用的,参加过CTF(夺旗赛)的应该都有听说过。接下来就用它演示。

将图种文件打开(十六进制):

有非常非常多行。但我们只需要查找定位到压缩文件的头部即可。比如本例中,zip格式的头部为50 4B 03 04,因此ctrl+F直接查找这一组字符:

刚好对应隐藏的五个压缩包。当然可以分别把它们都提取出来,但现在只提取视频。由于大小差距明显,很容易明白,这个视频文件即是第三行到第四行的那一段(这是故意的,一个接近90MB的视频藏在一堆1MB左右的图片中实在是很显眼)。选中这一段,将其导出为十六进制文件:

得到一个很大的txt:

甚至比视频本身都大得多(可以考虑下原因)。虽然没什么用,但如果尝试双击打开它,你可能要等上一小段时间,因为——

这时,如果直接把文件后缀改成.zip进行解压,可能会提示压缩包已损坏,因为忽略了一些细节。除了使用压缩包修复(话说都有修复功能了为什么还要用这方法)以外,一个方法是再次使用010Editor,点击导入十六进制,之后另存为zip文件。现在,就可以解压获得视频文件了。

视频当然不会受影响,可以正常播放:

这种方法比使用压缩包修复更灵活,也更有启发性。的确,如果只是想从图种中获取几个压缩包,那么使用有修复功能的解压软件是最简单的;但是,使用编码方式,你可以修改其中一部分字段,实现更多的隐藏信息。比如修改压缩包本身的内容,则使用修复也不会获得正确文件。

此外,你还可以尝试直接把其他文件(jpg、png、txt等)用开头的命令语句复制到图片载体(当然也可以用其他文件作载体),那无论怎么用解压软件修复,也得不到正确的隐藏文件——因为图种里根本不包含压缩包。而这时,就可以将文件转为十六进制进行分析。对于类似zip的、有特定格式的文件,要查找和提取还是比较容易的;而即使是对于那些格式未知的文件,花些心思进行分析,能得到的信息也总比用解压软件得到的多。

再举个简单的例子好了。

是文文,wsl

直接使用命令,将mp4文件和WinCat图片复制进Drink.jpg。

解压软件理所当然地打不开(别试了,改后缀也不行):

但是仍然可以用010打开:

同样地,常见的mp4头部为00 00 00 18 66 74 79 70。直接搜索:

定位并导出为十六进制文本,之后再次另存为mp4格式的文件:

得到完整的视频文件。

对这方面内容感兴趣的话,可以在网上查询相关资料,并尝试参加一些CTF。这篇教程就写到这里。

PS. 两个与常用类型文件的头部有关的网址:

http://www.nicetool.net/app/file_signature.html

https://blog.csdn.net/qq_41079177/article/details/79221638


图种制作基本教程的评论 (共 条)

分享到微博请遵守国家法律