powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Разбор ZIP-файла
18 сообщений из 18, страница 1 из 1
Разбор ZIP-файла
    #38432281
beef
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.
Нужно разобрать ZIP.

Вот общая структура заголовка Local File Header, с которой ZIP должен начинаться:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Offset   Length   Contents
  0      4 bytes  Local file header signature (0x04034b50)
  4      2 bytes  Version needed to extract
  6      2 bytes  General purpose bit flag
  8      2 bytes  Compression method
 10      2 bytes  Last mod file time
 12      2 bytes  Last mod file date
 14      4 bytes  CRC-32
 18      4 bytes  Compressed size (n)
 22      4 bytes  Uncompressed size
 26      2 bytes  Filename length (f)
 28      2 bytes  Extra field length (e)
        (f)bytes  Filename
        (e)bytes  Extra field
        (n)bytes  Compressed data

Смотрю мой ZIP:

То, что там перед заголовком несколько байт - на это не обращайте внимания, я ZIP, начиная с заголовка, потом вырезал. Смотрим, начиная с префикса заголовка 0х04034b50. Первые 30 байт заголовка выделил красным и остаётся ещё перед именем файла 3 каких-то левых нулевых байта, хотя может они и не левые… я их, конечно, попробовал чисто на дурака удалить, но не прокатило (архив не распаковывается). Ещё смущает, что предпоследний красный блок (длина имени файла) как будто имеет значение 0A, что очевидно не соответствует действительности (если это длина, то вроде должна быть 0B).
Отмечу, что этот ZIP, который я пытаюсь разобрать, упаковывался не мной и неизвестно при каких обстоятельствах. Мне просто его дали, сказали, что это ZIP и нужно распаковать.

Для интереса, сам упаковал простенький ZIP и посмотрел его заголовок:

Здесь всё ожидаемо и соответствует формату.

Вопрос. Что может быть не так с моим ЗИПом? Какой-то расширенный формат заголовка или тупо файл до передачи в мои руки немного покоцался? Ещё раз говорю, что архиватором он не воспринимается.

PS Я привёл только первый заголовок, но другие необходимые зиповские заголовки в файле тоже есть и тоже не вполне соответствую формату, хотя очень похожи на правду.
Исходный файл прилагаю.
...
Рейтинг: 0 / 0
Разбор ZIP-файла
    #38432284
beef
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Разбор ZIP-файла
    #38432747
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beef, на каком языке ты программируешь?
...
Рейтинг: 0 / 0
Разбор ZIP-файла
    #38432797
beef
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

вообще на разных) Эту задачу я должен сделать на C#, но не пойму, какое это имеет значение?
...
Рейтинг: 0 / 0
Разбор ZIP-файла
    #38432833
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beefmayton,

вообще на разных) Эту задачу я должен сделать на C#, но не пойму, какое это имеет значение?
Когда будешь писать код который читает загловок (Header) ты вспомнишь мой вопрос.
Для С# почитай ссылку http://stackoverflow.com/questions/2384/read-binary-file-into-a-struct
Возможно пригодится.
...
Рейтинг: 0 / 0
Разбор ZIP-файла
    #38432905
beef
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonbeefmayton,

вообще на разных) Эту задачу я должен сделать на C#, но не пойму, какое это имеет значение?
Когда будешь писать код который читает загловок (Header) ты вспомнишь мой вопрос.
Для С# почитай ссылку http://stackoverflow.com/questions/2384/read-binary-file-into-a-struct
Возможно пригодится.

Спасибо, я посмотрю ссылку, но боюсь, вы меня неправильно поняли. Мне вообще-то не надо разбирать файл на заголовки и прочие части. Задача очень простая - распаковать файл хоть винраром, хоть любой другой программой. А проблема в том, что тот же винрар пишет, что архив повреждён.

А разбираться со структурой файла я начал только для того, чтобы понять, что с ним не так. В частности, выяснил, что заголовок Local File Header не совсем соответствует документации.
...
Рейтинг: 0 / 0
Разбор ZIP-файла
    #38432952
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда забей на программирование. В интернетах полно утилит для Zip Recovery. Скачай и пользуйся.
Если надо делать джоб или скедулер - разбери как работают их консольные варианты. Из личного
опыта 99% повреждений архива - это "недописанные" хвосты. Недокачанный файл по сути.

Прочие ошибки - нестандартный архиватор. Не Zip. Решение соотв - поиск той утилиты которая
его создала. Или патчинг своего.
...
Рейтинг: 0 / 0
Разбор ZIP-файла
    #38433029
beef
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

вот потому меня и смутил ваш вопрос насчёт языка, что программирования здесь по сути нет.
Перепробовал несколько утилит, в том числе Zip Recovery - не помогло.
Хвост похоже дописан правильно - там я обнаружил, как и полагается, структуру [end of central directory record]:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
      end of central dir signature    4 bytes  (0x06054b50)
      number of this disk             2 bytes
      number of the disk with the
      start of the central directory  2 bytes
      total number of entries in the
      central directory on this disk  2 bytes
      total number of entries in
      the central directory           2 bytes
      size of the central directory   4 bytes
      offset of start of central
      directory with respect to
      the starting disk number        4 bytes
      .ZIP file comment length        2 bytes
      .ZIP file comment       (variable size)

В этой структуре ничего лишнего не оказалось, всё соответствует формату.

В общем, похоже нужно действительно разбираться с архиватором.
...
Рейтинг: 0 / 0
Разбор ZIP-файла
    #38433040
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тема этого форума - программирование. И здесь обычно задают вопросы о написании
софта.

Использование софта, покупка, лицензирование и обучение - в другие форумы.
Поэтому мой о вопрос о выборе языка совершенно уместен.
...
Рейтинг: 0 / 0
Разбор ZIP-файла
    #38433049
beef
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
beef,

кстати, общая задача - вытащить файл из электронного письма (файл является вложением) такого вида

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
...
заголовки
...
--uuid:58acaebc-26ee-46bb-b187-7d27a9eeb485
Content-Id:<69eee70b-0f5c-420d-ae9c-88aa3aaa03e3>
Content-Type: application/binary
Content-ID: 69eee70b-0f5c-420d-ae9c-88aa3aaa03e3
Content-Transfer-Encoding: binary

тут бинарный код файл
--uuid:58acaebc-26ee-46bb-b187-7d27a9eeb485--

Может есть какие-то особенности при разборе именно писем?
...
Рейтинг: 0 / 0
Разбор ZIP-файла
    #38433053
beef
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonТема этого форума - программирование. И здесь обычно задают вопросы о написании
софта.

Использование софта, покупка, лицензирование и обучение - в другие форумы.
Поэтому мой о вопрос о выборе языка совершенно уместен.

Понял.
...
Рейтинг: 0 / 0
Разбор ZIP-файла
    #38433167
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
beefПервые 30 байт заголовка выделил красным и остаётся ещё перед именем файла 3 каких-то левых нулевых байта, хотя может они и не левые… я их, конечно, попробовал чисто на дурака удалить, но не прокатило (архив не распаковывается). Ещё смущает, что предпоследний красный блок (длина имени файла) как будто имеет значение 0A, что очевидно не соответствует действительности (если это длина, то вроде должна быть 0B).
Ну 3 левых байта видимо не там. 0С 00 - длина имени, перед этим цифры в принципе похоже на размеры упакованного и распакованного файла.
...
Рейтинг: 0 / 0
Разбор ZIP-файла
    #38433228
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
beefВопрос. Что может быть не так с моим ЗИПом? Какой-то расширенный формат заголовка или тупо файл до передачи в мои руки немного покоцался?Он сильно покоцался. Постоянное повторение последовательность EF BF BD совершенно нехарактерно для упакованного файла.
...
Рейтинг: 0 / 0
Разбор ZIP-файла
    #38433237
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
...
Рейтинг: 0 / 0
Разбор ZIP-файла
    #38433248
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
UTF-8 заменяющего символа — 0xEF 0xBF 0xBDКакая-то программа решила, что файл в utf-8, и все что не является правильными utf-8 символами, заменила. Теперь только в мусорную корзину.
...
Рейтинг: 0 / 0
Разбор ZIP-файла
    #38433264
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
beefМожет есть какие-то особенности при разборе именно писем?Есть особенности при отправке писем: http://msdn.microsoft.com/en-us/library/ms527563(v=exchg.10).aspx Binary encoded messages are not valid Internet messages.
...
Рейтинг: 0 / 0
Разбор ZIP-файла
    #38433277
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
Не, лучше сослаться на rfc http://www.ietf.org/rfc/rfc2045.txt As of
the initial publication of this document, there are no standardized
Internet mail transports for which it is legitimate to include
unencoded binary data in mail bodies. Thus there are no
circumstances in which the "binary" Content-Transfer-Encoding is
actually valid in Internet mail.
...
Рейтинг: 0 / 0
Разбор ZIP-файла
    #38433320
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
beef, отправь сам себе на этот адрес эталонный файл и посмотри что с ним происходит.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Разбор ZIP-файла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]