|
|
|
Разбор ZIP-файла
|
|||
|---|---|---|---|
|
#18+
Всем привет. Нужно разобрать ZIP. Вот общая структура заголовка Local File Header, с которой ZIP должен начинаться: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Смотрю мой ZIP: То, что там перед заголовком несколько байт - на это не обращайте внимания, я ZIP, начиная с заголовка, потом вырезал. Смотрим, начиная с префикса заголовка 0х04034b50. Первые 30 байт заголовка выделил красным и остаётся ещё перед именем файла 3 каких-то левых нулевых байта, хотя может они и не левые… я их, конечно, попробовал чисто на дурака удалить, но не прокатило (архив не распаковывается). Ещё смущает, что предпоследний красный блок (длина имени файла) как будто имеет значение 0A, что очевидно не соответствует действительности (если это длина, то вроде должна быть 0B). Отмечу, что этот ZIP, который я пытаюсь разобрать, упаковывался не мной и неизвестно при каких обстоятельствах. Мне просто его дали, сказали, что это ZIP и нужно распаковать. Для интереса, сам упаковал простенький ZIP и посмотрел его заголовок: Здесь всё ожидаемо и соответствует формату. Вопрос. Что может быть не так с моим ЗИПом? Какой-то расширенный формат заголовка или тупо файл до передачи в мои руки немного покоцался? Ещё раз говорю, что архиватором он не воспринимается. PS Я привёл только первый заголовок, но другие необходимые зиповские заголовки в файле тоже есть и тоже не вполне соответствую формату, хотя очень похожи на правду. Исходный файл прилагаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 09:18 |
|
||
|
Разбор ZIP-файла
|
|||
|---|---|---|---|
|
#18+
beef, на каком языке ты программируешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 13:11 |
|
||
|
Разбор ZIP-файла
|
|||
|---|---|---|---|
|
#18+
mayton, вообще на разных) Эту задачу я должен сделать на C#, но не пойму, какое это имеет значение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 13:36 |
|
||
|
Разбор ZIP-файла
|
|||
|---|---|---|---|
|
#18+
beefmayton, вообще на разных) Эту задачу я должен сделать на C#, но не пойму, какое это имеет значение? Когда будешь писать код который читает загловок (Header) ты вспомнишь мой вопрос. Для С# почитай ссылку http://stackoverflow.com/questions/2384/read-binary-file-into-a-struct Возможно пригодится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 13:52 |
|
||
|
Разбор ZIP-файла
|
|||
|---|---|---|---|
|
#18+
maytonbeefmayton, вообще на разных) Эту задачу я должен сделать на C#, но не пойму, какое это имеет значение? Когда будешь писать код который читает загловок (Header) ты вспомнишь мой вопрос. Для С# почитай ссылку http://stackoverflow.com/questions/2384/read-binary-file-into-a-struct Возможно пригодится. Спасибо, я посмотрю ссылку, но боюсь, вы меня неправильно поняли. Мне вообще-то не надо разбирать файл на заголовки и прочие части. Задача очень простая - распаковать файл хоть винраром, хоть любой другой программой. А проблема в том, что тот же винрар пишет, что архив повреждён. А разбираться со структурой файла я начал только для того, чтобы понять, что с ним не так. В частности, выяснил, что заголовок Local File Header не совсем соответствует документации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 14:28 |
|
||
|
Разбор ZIP-файла
|
|||
|---|---|---|---|
|
#18+
Тогда забей на программирование. В интернетах полно утилит для Zip Recovery. Скачай и пользуйся. Если надо делать джоб или скедулер - разбери как работают их консольные варианты. Из личного опыта 99% повреждений архива - это "недописанные" хвосты. Недокачанный файл по сути. Прочие ошибки - нестандартный архиватор. Не Zip. Решение соотв - поиск той утилиты которая его создала. Или патчинг своего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 15:02 |
|
||
|
Разбор ZIP-файла
|
|||
|---|---|---|---|
|
#18+
mayton, вот потому меня и смутил ваш вопрос насчёт языка, что программирования здесь по сути нет. Перепробовал несколько утилит, в том числе Zip Recovery - не помогло. Хвост похоже дописан правильно - там я обнаружил, как и полагается, структуру [end of central directory record]: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. В этой структуре ничего лишнего не оказалось, всё соответствует формату. В общем, похоже нужно действительно разбираться с архиватором. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 15:38 |
|
||
|
Разбор ZIP-файла
|
|||
|---|---|---|---|
|
#18+
Тема этого форума - программирование. И здесь обычно задают вопросы о написании софта. Использование софта, покупка, лицензирование и обучение - в другие форумы. Поэтому мой о вопрос о выборе языка совершенно уместен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 15:45 |
|
||
|
Разбор ZIP-файла
|
|||
|---|---|---|---|
|
#18+
beef, кстати, общая задача - вытащить файл из электронного письма (файл является вложением) такого вида Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Может есть какие-то особенности при разборе именно писем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 15:48 |
|
||
|
Разбор ZIP-файла
|
|||
|---|---|---|---|
|
#18+
maytonТема этого форума - программирование. И здесь обычно задают вопросы о написании софта. Использование софта, покупка, лицензирование и обучение - в другие форумы. Поэтому мой о вопрос о выборе языка совершенно уместен. Понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 15:51 |
|
||
|
Разбор ZIP-файла
|
|||
|---|---|---|---|
|
#18+
beefПервые 30 байт заголовка выделил красным и остаётся ещё перед именем файла 3 каких-то левых нулевых байта, хотя может они и не левые… я их, конечно, попробовал чисто на дурака удалить, но не прокатило (архив не распаковывается). Ещё смущает, что предпоследний красный блок (длина имени файла) как будто имеет значение 0A, что очевидно не соответствует действительности (если это длина, то вроде должна быть 0B). Ну 3 левых байта видимо не там. 0С 00 - длина имени, перед этим цифры в принципе похоже на размеры упакованного и распакованного файла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 16:41 |
|
||
|
Разбор ZIP-файла
|
|||
|---|---|---|---|
|
#18+
beefВопрос. Что может быть не так с моим ЗИПом? Какой-то расширенный формат заголовка или тупо файл до передачи в мои руки немного покоцался?Он сильно покоцался. Постоянное повторение последовательность EF BF BD совершенно нехарактерно для упакованного файла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 17:05 |
|
||
|
Разбор ZIP-файла
|
|||
|---|---|---|---|
|
#18+
UTF-8 заменяющего символа — 0xEF 0xBF 0xBDКакая-то программа решила, что файл в utf-8, и все что не является правильными utf-8 символами, заменила. Теперь только в мусорную корзину. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 17:13 |
|
||
|
Разбор ZIP-файла
|
|||
|---|---|---|---|
|
#18+
beefМожет есть какие-то особенности при разборе именно писем?Есть особенности при отправке писем: http://msdn.microsoft.com/en-us/library/ms527563(v=exchg.10).aspx Binary encoded messages are not valid Internet messages. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 17:26 |
|
||
|
Разбор ZIP-файла
|
|||
|---|---|---|---|
|
#18+
Не, лучше сослаться на 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 17:34 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=38432747&tid=1341630]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
199ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 479ms |

| 0 / 0 |
