如何查找/检测JPEG文件中的隐藏文件?

ken*_*orb 5 jpeg command-line steganography embedding

我试图找出检测图像文件中是否隐藏其他文件的好方法是什么?

相关链接:

ken*_*orb 17

简单的方法

通过 ImageMagick/convert 工具的方法

使用 ImageMagick 命令工具convert查找原始文件和转换后的文件之间的差异。例如

$ convert original.jpg converted.jpg  # this is an ImageMagick command
$ ls -l original.jpg converted.jpg
  667228 original.jpg
  648515 converted.jpg
Run Code Online (Sandbox Code Playgroud)

然后就可以比较二进制文件了,参见:How do I compare binary files in Linux?

通过字符串的方法

通过 查找任何可疑内容strings。它将打印文件中的任何可打印字符串,这些字符串可能指示一些隐藏的文件、消息或内容。例如:

$ strings -10 image.jpg
Run Code Online (Sandbox Code Playgroud)

示例图像:带有隐藏信息的原始图像,它启动了 Cicada 3301


先进的方法

通过 hexdump 的方法

每个 JPEG 文件都以二进制值为 的 SOI(图像开始)开始,并以二进制值为 的0xFFD8EOI 标记(图像结束)终止0xFFD9

因此,您可以尝试在 EOI 标记之后检查任何额外的内容。例如:

hexdump -C image.jpg  | less +/"ff d9"
hexdump -C image.jpg  | more +/"ff d9"
Run Code Online (Sandbox Code Playgroud)

通过 xdd 的方法

使用xdd基于命令行的工具和trsed在 EOI 标记之后打印内容。

例如:

xxd -c1 -p image.jpg | tr "\n" " " | sed -n -e 's/.*\( ff d9 \)\(.*\).*/\2/p' | xxd -r -p
Run Code Online (Sandbox Code Playgroud)

阅读更多:如何在 SE转储部分二进制文件


有关的: