Надеюсь, вы слышали о опрятном взломе, который позволяет объединить JPG и Zip файл в один файл, и он действителен ( или, по крайней мере, читаемый) файл для обоих форматов. Ну, я понял, что, поскольку JPG позволяет произвольным материалам в конце, а ZIP в начале, вы можете вставить еще один формат там - посередине. Для целей этого вопроса предположим, что средние данные - это произвольные двоичные данные, которые не конфликтуют с форматами JPG или ZIP (это означает, что он не содержит волшебный zip-заголовок 0x04034b50). Иллюстрация:
0xFFD8 <- start jpg data end -> 0xFFD9 ... ARBITRARY BINARY DATA ... 0x04034b50 <- start zip file ... EOF
Я отношусь вот так:
cat "mss_1600.jpg" filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb "null.bytes" "randomzipfile.zip" > temp.zip
Это создает файл размером 6,318 КБ. Он не работает в 7-Zip. Однако, когда я кот один меньше "двойной" (так вместо 13 файлов и b, 12):
cat "mss_1600.jpg" filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb filea fileb "null.bytes" "randomzipfile.zip" > temp.zip
Он создает файл размером 5,996 КБ, который делает в 7-Zip.
Итак, я знаю, что у моих произвольных двоичных данных нет волшебного заголовка Zip файла, чтобы его испортить. У меня есть ссылочные файлы рабочий файл jpg + data + zip и не- рабочий файл jpg + data + zip (save-as заставляет браузер думать, что это изображения, и добавьте расширения zip самостоятельно).
Я хочу знать, почему он терпит неудачу с 13 комбинациями и не с 12. Для бонусных очков мне нужно как-то обойти это.