Как найти / обнаружить скрытые файлы внутри файла JPEG?

Я пытаюсь выяснить, как определить, есть ли в файле изображения другие файлы, скрытые внутри него?

ссылка по теме:

1 ответ

Решение

Простые методы

Метод с помощью ImageMagick/ конвертировать инструмент

Используйте командный инструмент 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

Подробнее: Как вывести часть двоичного файла на SE


Связанные с:

Другие вопросы по тегам