右键RAR —— 浅谈文件隐藏

“右键RAR”是什么?它是一种通过利用图片终止标记和RAR起始标记的一种文件隐藏手段。把下面的文件下载,右键“用WinRAR解压缩”(或者选择打开方式——WinRAR):

请右键保存这个文件,用WinRAR打开

相信很多人一定关心“怎么做的?!”。其实这个很简单,首先找一张标准的,稍微大一点的 JPG图像,然后再找几个文件,打包成RAR。之后只要在DOS下输入

copy /b 图片.jpg + 文档.rar 输出.jpg

或者 Linux 用户的话

cat 图片.jpg 文档.rar > 输出.jpg

就可以了。当然这个也有局限性,有的系统/浏览器/图片查看器等等可能不识别,也有的图片和RAR不容。不过大部分情况还是可以的。用鼠标右键(或者直接拿RAR打开),看看是不是能“解压缩文件”呢?= =

那么解释一下原理吧:有人可能已经从命令看出来了,隐藏RAR到JPG里面仅仅是在JPG文件后面追加(Concat)了一个RAR。其实这种隐藏利用了图片(JPEG)和RAR两种文件格式的“完整性检查”来年蒙混视听的。在JPEG格式中,由于文件按块和颜色对比进行的点阵压缩,所以文件有固定的大小和终止符。

有没有发现JPG下载如果下了一半你看到的是原大小图片只不过不清晰,而位点图 (Bitmap, X-Pixmap)或者位点压缩图(PNG)如果你下载到一半打开是上部分清晰而下部分完全没有的图片。JPEG的信息是不断的定义更清晰,而PNG/BMP这种位图更多的是直接按顺序反映像素点。 正是利用了JPEG忽略自己不认识的数据的这个模式,在各种图片浏览器下,原来JPEG后面追加的RAR被“忽略”了(因为文件已经到了结尾标记,就不读了),自然图片还是显示得出来。

那么RAR又是怎么识别的呢?应该有不少人曾经右键解压缩过一些RAR的自解压安装程序,那么为什么WinRAR能判断这些程序是RAR自解压程序呢 ?其实就是通过快速搜索了一下文件,找到了一个RAR的起始标签而已。由WinRAR制作的自解压程序多数是用一个预制的自解压模块(包含RAR算法)后面绑上一个RAR文件实现的。WinRAR判断这些文件就是通过在文件里面找到RAR标签,于是判断了这是压缩文件。至于前面的JPEG信息,那是和自解压程序的二进制一样的,RAR看不懂,怎么办?忽略。

说到头来,这种文件隐藏是个让人/机器迷惑而已的一种做法。就像是在“漫画书外包语文书皮(请参考链接视频)”或者是 http://www.google.com.hk 这样的链接。仅仅是晃过检查的一种策略而已,不过也着实被当时和现在的人们利用来通过图片分享服务分享文件(对内分享)。

这种隐藏方法现在倒是不足够灵了。一般图片站点上传文件后都会自动优化图片,于是顺势也就把后面的RAR(在图片阅读器看来是冗余信息)信息给裁掉了。RAR不能太大,图片也不能太压缩。总之这种方式在混过网络传输或许帮不上你多大忙,但是要是想存几个秘密文件怕别人翻出来,这也不乏是个好办法。

同时顺便解决了很多人不理解“右键RAR”这行话的意味的。

2 Comments

发表评论

电子邮件地址不会被公开。 必填项已用*标注