标准流程:
1:准备一张图片,test.jpg。准备目标文件,比如test.txt。目标是把test.txt隐藏在图片里面。
2:把要隐藏的文件 test.txt 压缩。生成 test.rar 压缩包(7z测试可用)
3:打开命令提示符
4:如果两个文件都存放在D:下。输入命令:copy /b D:test.jpg + D:test.rar D:test.jpg //注意 D: 别省略
5:ok,试试打开生成的图片 test.jpg,没错吧,的的确确是原来的图片。
6:怎样打开那个 txt 文件?打开 压缩软件,点击 文件 → 打开(快捷键 Ctrl + O ) ,然后选择文件类型为 所有文件 ,找到 test.jpg ,选择打开看看,是不是有个 txt 文件?
再解释一下原理:从命令很容易看出来,隐藏一个RAR到JPG里面仅仅是在JPG文件后面追加(Concat)了一个RAR。其实这种隐藏利用了JPEG和RAR两种文件格式的 完整性检查 来蒙混视听。在JPEG格式中,由于文件是按 块 和 颜色对比 进行的点阵压缩,所以文件有固定的大小和终止符。
有没有发现JPG下载如果下了一半你看到的是原大小图片只不过不清晰,而 位图 (Bitmap, X-Pixmap)或者 位点压缩图(PNG)如果你下载到一半打开 是上部分清晰而下部分完全没有的图片。JPEG的信息是不断的定义更清晰,而PNG/BMP这种位图更多的是直接按顺序反映像素点。 正是利用了JPEG忽略自己不认识的数据的这个模式,在各种图片浏览器下,原来JPEG后面追加的RAR被直接忽略了,因为文件已经到了结尾标记,就不读了,自然图片还是显示得出来,而RAR看不到.
那么RAR又是怎么识别的呢?解压缩过后缀为EXE的 RAR的自解压安装程序 吧,那么为什么压缩软件能判断这些程序是RAR自解压程序?其实就是通过快速检索了一下文件,找到了一个RAR的起始标签而已。由压缩软件制作的自解压程序多数是用一个预制的自解压模块(包含RAR算法)后面绑上一个RAR文件实现的。WinRAR判断这些文件就是通过在文件里面找到RAR标签,于是判断了这是压缩文件。至于前面的JPEG信息,那是和自解压程序的二进制一样的,RAR看不懂,怎么办?忽略。
说到头来,这种文件隐藏是个让人和机器迷惑而已的一种做法。就像是 在漫画书外包语文书皮 仅仅是晃过检查的一种简单策略而已,不过也着实被当时和现在的人们利用来通过图片分享服务分享文件(对内分享)。
这种隐藏方法现在倒是不足够灵了。一般图片站点上传文件后都会自动优化图片,于是顺势也就把后面的RAR(在图片阅读器看来是冗余信息)信息给裁掉了。RAR不能太大,图片也不能太压缩。总之这种方式在混过网络传输或许帮不上你多大忙,但是要是想存几个秘密文件怕别人翻出来,这也不乏是个好办法。
这是因为帖子上的这个图片实际上是一个种子文件的下载链接,因此会出现这各现象。