ZIP иль не ZIP?

Jul 17, 2019 23:58

Вы конечно знакомы с zip-файлами? Ну, которые архивы?

А что такое, по-вашему, zip-файл?

Нет, я не спрашиваю, как он там внутри устроен. Просто допустим, что вам дали файл и спросили: zip это, или не zip?

Можно попробовать его разархивировать.
Но вдруг он всё равно внутри кривой? )

Leave a comment

Comments 33

lj_frank_bot July 17 2019, 21:41:06 UTC
Hello!
LiveJournal categorization system detected that your entry belongs to the category: Общество.
If you think that this choice was wrong please reply this comment. Your feedback will help us improve system.
Frank,
LJ Team

Reply

p_govorun July 17 2019, 21:46:16 UTC
Well, just don't bother classifying this.

And would you translate the name of the category to me? Just in case I don't know Russian.

Reply

vitus_wagner July 18 2019, 07:06:01 UTC
Не надо издеваться над бедным животным. Оно в тексте поста увидело русские слова, вот и решило, что категория должна быть на том же языке.

Reply

p_govorun July 18 2019, 09:35:03 UTC
Да, любой набор уникодных знаков может быть категорией :-)

Reply


birdwatcher July 17 2019, 22:47:21 UTC
Only perl can parse Perl. Аналогично, zip/doc file это то, что может без сообщений об ошибке развернуть pkunzip/word последней версии, и хранится там, по определению, то, что у них при этом получается.

Reply

p_govorun July 17 2019, 22:49:26 UTC
Почему именно последней? И что будет, когда выйдет следующая?

Reply

birdwatcher July 17 2019, 22:57:37 UTC
Ну, что бывает, когда новый reference implementation выходит. Возможно, некоторые zip-файлы перестанут быть таковыми.

Reply

p_govorun July 17 2019, 23:00:44 UTC
Ну, остаётся только на plaintext переходить. Вроде, у него нет reference implementation.

Reply


nasse July 18 2019, 05:54:07 UTC
документ MS-Word - это документ, который создает MS-Word

Reply

vitus_wagner July 18 2019, 07:03:13 UTC
Есть еще odt и epub.

Reply

nasse July 18 2019, 07:09:12 UTC
В каком смысле "есть"?
Все, что не записано вордом в родном формате ворда той же версии, может быть другим вордом открыто криво.

Reply

vitus_wagner July 18 2019, 07:44:37 UTC
В таком смысле, что не только ворд пользуется zip-ом для упаковки текстов.
И, кстати, ворд odt тоже уже 10 лет как открывать умеет.

Reply


greymage July 18 2019, 06:53:13 UTC
Насколько я понял статью (читал не очень внимательно), проблема не в формате ZIP (который, кстати, здорово менялся ещё во времена компании, выпускавшей PkZip), а в контейнере для упакованных файлов.

Reply

vitus_wagner July 18 2019, 07:04:15 UTC
Так формат zip это и есть стандарт на формат контейнера.
А алгоритм(ы) компрессии там вещь глубоко внутренняя и опциональная.
Хотя по ссылке их особенностями тоже ловко сумели воспользоваться.

Reply

p_govorun July 18 2019, 09:42:41 UTC
Я вобще не понял, есть ли проблема в формате. То есть, все эти хитрые zip удовлетворяют стандарту (чем бы он ни был) или нарушают его.

И отдельно проблема: как написать стандарт, который такой фигни не допускает.

Reply


vitus_wagner July 18 2019, 07:49:55 UTC
С точки зрения программы file(1), zip это все, что начинается с последовательности байт .{0,13,'P','K',3,4}

Reply

green_fr July 18 2019, 07:54:43 UTC
Откуда 0-13 и 3-4? Мне казалось, сигнатура только "PK" - я регулярно проверяю, zip это или не zip через встроенный в Total Commander viewer :-)

Reply

vitus_wagner July 18 2019, 08:00:42 UTC
3 и 4 это признак загловка файла. В конце файла есть еще 'P' 'K' 1 2 и 'P' 'K' 5 6 То есть в zip-файле есть три вида блоков, начинающихся на PK. PK 5 6 - это end of central directory, PK 1 2 это central directory entry и PK 3 4 - заголовок файла в потоке.

А откуда в magic 0 13 я и сам не знаю.

Reply

green_fr July 18 2019, 09:37:39 UTC
Круто, спасибо :-)

Reply


Leave a comment

Up