是否可以以图像文件(例如PNG图像)的形式存储任意数据(例如文档或程序)?我担心的是,有人可能会将供恶意软件使用的数据编码为图像,然后将其上传到Flickr之类的网站。
:-P
是否可以以图像文件(例如PNG图像)的形式存储任意数据(例如文档或程序)?我担心的是,有人可能会将供恶意软件使用的数据编码为图像,然后将其上传到Flickr之类的网站。
:-P
Answers:
对于大多数文件格式,可以。例如,PNG文件由类型化的块组成,因此您可以添加名为aAAA
或lOLZ
带有任意数据的块。JPEG具有“特定于应用程序”的段;JPEG中的Exif标签实际上是此类标签中完整的TIFF结构。其他格式(例如GIF)是不可扩展的,但是它们通常确实有一个用于文本注释的字段。这已经被滥用了。APPn
但是,有很多方法可以防止这种情况发生,例如,Imgur等网站会使用pngcrush
或类似工具自动处理所有上传,从而丢弃了并非绝对需要的任何内容。
但是最后,无法防止数据交换。除了上述图像隐写术之外,您还拥有Twitter及其克隆,数十个pastebins(其中难以理解的帖子被认为是很正常的),旧博客帖子的评论形式(我仍然想记住这本建议的书), ...更现实的是,大多数恶意软件只会联系其“自己的”服务器。
图像文件(包括PNG)具有特定格式。文件的标题部分描述了图像,其后的任何数据都将被解释为图像数据(基于标题)。
但是,您可以在图像数据之后将任意数据附加到PNG的末尾,然后可以在以后读取。这将很容易检测-图像数据的末尾不应有任何数据。
或者,您可以使用隐写术将任意数据编码到图像本身中。除非您确切知道要查找的内容(通常需要先了解编码方法),否则这会以很大程度上无法检测的方式巧妙地改变图像本身。