如何在图像文件中查找隐藏文件(Jpg / Gif / Png)



我遇到了一个链接,显示了如何在图像文件中隐藏文件数: http://lifehacker.com/282119/hide-files-inside-of-jpeg-images 有关检测的更多讨论: http://ask.metafilter.com/119943/How-to-detect-RARsEXEs-hidden-in-JPGs

我试图找出以编程方式检测图像文件中是否隐藏了其他文件的好方法?我应该尝试解压缩文件以查看是否有其他文件出来吗?

我没有以编程方式绑定,但在 JVM 上运行良好的东西会很棒。

更新

一种方法:

这样的东西会起作用吗(由元过滤器上的某人建议)

$ cat orig.jpg test.zip > stacked.jpg
$ file stacked.jpg 
stacked.jpg: JPEG image data, JFIF standard 1.01
$ convert stacked.jpg stripped.jpg  # this is an ImageMagick command
$ ls -l
 11483 orig.jpg
322399 stacked.jpg
 11484 stripped.jpg
310916 test.zip

我可以使用JMagick来这种方法。

好问题!

如果您只想检查附加到末尾的 RAR 或 ZIP 文件图像文件,然后通过 unrarunzip 命令运行它是最简单的方法。

如果您想要更快但不太精确的检查,您可以检查一些指示某些类型的文件的特殊文件格式签名。这通常用于识别文件格式的UNIX工具是file。它使用二进制文件签名数据库,其格式为在 magic(5) 手册页中定义。它找不到 RAR 文件你在 JPEG 的末尾,因为它只在文件的开头查看尝试快速识别它们,但您也许可以修改其源代码做你想做的事。您还可以重用其文件签名数据库。如果您在 Rar 文件部分查看其数据库的存档文件部分,它会显示以下内容:

# RAR archiver (Greg Roelofs, newt@uchicago.edu)
0   string      Rar!        RAR archive data,

这表示如果您的 JPEG 文件包含四个字节Rar!会很可疑。但是您必须检查 Rar 文件格式规范详细检查是否更多的 Rar 文件结构是为避免误报而呈现 — 此网页还包含四个字节 Rar!但没有附加任何隐藏文件:P

但是,如果有人知道您的自动检查的详细信息,他们可以轻松解决它们。最简单的解决方法是反转所有字节的文件,然后再将它们附加到 JPEG。然后你的都不是签名将捕获文件的反向版本。


如果有人真的想在图像中隐藏文件,有各种各样的的方法,您将无法轻松检测到。将军这方面的术语是"隐写术"。维基百科页面,用于示例,显示一张树的图片,其中隐藏了一只猫的图片它。对于更简单的隐写方法,有统计测试:可以表明对图片做了一些有趣的事情,但如果有人花了很多时间想出自己的方法来隐藏其他文件在图像内部,您将无法检测到它。

您可以搜索文件签名。http://en.wikipedia.org/wiki/List_of_file_signatures例如,对于 7Z 文件,符号为 37 7A BC AF 27 1C对于 RAR 文件,它是 52 61 72 21 1A 07 00对于拉链,它是 50 4B 03 04查看十六进制编辑器中的压缩文件,例如 HxD

要查看是否有任何元数据或其他信息附加到文件中,您可以解码图像并重新编码它以查看大小是否显着减小。对于 JPEG 文件,您可能希望执行诸如保留原始 DCT 数据的无损旋转之类的操作,否则文件大小可能会仅通过编码差异而更改。

较小的结果不会证明隐藏数据,但可以表明您需要仔细查看。

从来没有分享过你提出这个问题的动机,但我猜这是关于将图像下载到公共网站。在这种情况下,您真的不应该关心提交的图像是否包含无关数据,无论如何您都应该清理输入。解码/重新编码过程将非常适合此。

相关内容

  • 没有找到相关文章

最新更新