第1个回答 2019-07-13
标准流程:
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不能太大,图片也不能太压缩。总之这种方式在混过网络传输或许帮不上你多大忙,但是要是想存几个秘密文件怕别人翻出来,这也不乏是个好办法。