Как распаковать необработанные данные PKZIP без zip-заголовка в Python?Python

Программы на Python
Ответить
Anonymous
 Как распаковать необработанные данные PKZIP без zip-заголовка в Python?

Сообщение Anonymous »

Я хочу распаковать необработанные данные из файла в экзотическом формате, но знаю, что метод сжатия тот же, что используется в ZIP-файле (PKZIP).
В файле PK\03\04 подпись отсутствует, после этого данные более или менее соответствуют спецификациям заголовка PKZIP: https://docs.fileformat.com/compression/zip/
  • 2 байты - версия = 0x0014 (не знаю, имеет ли это смысл)
  • 2-байтовые флаги = 0
  • 2-байтовый метод сжатия = 0x0008 («сдутый» согласно ZIP-документы)
  • случайные 4 байта (время изменения)
  • радном 4 байта (должно быть CRC32)
  • 4 допустимого размера в сжатом виде
  • 4 байта допустимого размера в несжатом виде
  • длина имени файла = 0x14
  • дополнительно длина поля = 0
  • имя файла — 20 случайных байт
затем необработанные сжатые данные и после этого Конец записи, которая выглядит поврежденной аналогичным образом. После добавления подписи и допустимых символов имени файла и сохранения буфера в файл я смог распаковать его с помощью 7zip. Он показал диалоговое окно с ошибкой, но создал несжатый файл. Результирующий файл содержал ожидаемые данные.
Я знаю, что всегда существует один сжатый файл и метод сжатия фиксирован. Имя файла не важно, поэтому я думаю, что должна быть возможность обрабатывать только сжатые байты данных после заголовка, игнорируя также и конечную запись.
Какой пакет Python предоставляет такую ​​функциональность?
Я хочу игнорировать ZIP-заголовки и передать только сжатый буфер данных какой-либо функции в Python (возможно указание метода сжатия и некоторых флагов) и получить несжатый буфер данных. Никакой проверки CRC, никаких имен файлов.

Подробнее здесь: https://stackoverflow.com/questions/792 ... -in-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»