После головоломки в головоломках.SE, который включал скрытый файл, добавленный к gif, у меня есть вопрос относительно добавленных файлов .rar.
Под этим вопросом я понимаю, почему я могу добавить содержимое файла .rar в конце любого известного формата изображения, если такой формат объявляет длину данных таким образом, что любой совместимый читатель будет загружать только необходимое количество байтов, а не читать до конца файла.
Я могу создать такой файл, как это:
$ cat myimg.jpg myhidden.rar > myimg.jpg
Который работает для любого из упомянутых форматов и с радостью откроется как обычное изображение в средстве просмотра изображений.
Что меня удивило, так это то, что я действительно могу открыть скрытый файл! Это:
$ sudo apt-get install unrar
$ unrar e myimg.jpg
и извлечет файлы из содержимого myhidden.rar
И мой вопрос: как это возможно? Моя первая мысль по этому поводу состояла в том, что когда я пытаюсь открыть свой файл, заголовок .rar не находится вверху (вместо этого странный формат, который rar ... parser не должен распознавать), но каким-то образом утилита управляет найти фактический файл rar и открыть его. Я заметил, что это работает как в Ubuntu, так и в Windows с WinRAR.
Что мне не хватает? Это работает и с другими форматами? (конкретно: .zip, .7z, .tar.gz).