答案1
简单方法
通过 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
然后可以对比一下二进制文件,看看:如何在 Linux 中比较二进制文件?
通过字符串的方法
通过 查找任何可疑内容strings
。它将打印文件中任何可打印的字符串,这些字符串可能表示某些隐藏的文件、消息或内容。例如:
$ strings -10 image.jpg
示例图片:启动 Cicada 3301 的隐藏信息的原始图像
高级方法
通过 hexdump 的方法
每个 JPEG 文件都以二进制值为的 SOI(图像开始)开始0xFFD8
,并以二进制值为 的 EOI 标记(图像结束)结束0xFFD9
。
因此,您可以尝试检查 EOI 标记后是否有任何额外内容。例如:
hexdump -C image.jpg | less +/"ff d9"
hexdump -C image.jpg | more +/"ff d9"
方法通过 xdd
使用xdd
基于命令行的工具和tr
来sed
打印 EOI 标记后的内容。
例如:
xxd -c1 -p image.jpg | tr "\n" " " | sed -n -e 's/.*\( ff d9 \)\(.*\).*/\2/p' | xxd -r -p
阅读更多:如何转储二进制文件的一部分在东南
有关的:
- 如何查找图像文件(Jpg/Gif/Png)中的隐藏文件[关闭]在 StackOverflow
- 在图像中查找隐藏文件(视频文件)[关闭]在 StackOverflow
- JPEG 格式和标记
- 隐写术在维基百科