Распаковка IMAP дефлированного сообщения

У меня проблема с попыткой распаковать сообщение imap, сжатое методом deflate. До сих пор я пробовал изолировать одно из направлений диалога IMAP (используя функцию wirecark follow tcp) и сохранять данные сообщения в необработанном формате, который, я надеюсь, содержит только дефлированную часть сообщения. Затем я нашел некоторые программы, такие как tinf (1-й и 3-й пример) и miniz (пример tgunzip), и попытался раздувать этот файл, но безуспешно. Я что-то упустил? Заранее спасибо.

tinf - http://www.ibsensoftware.com/download.html Miniz - https://code.google.com/archive/p/miniz/source/default/source

1 ответ

Попробуйте передать эти необработанные данные:

perl -MCompress::Zlib -pe 'BEGIN{$i = inflateInit(-WindowBits => -15)}
                           $_=$i->inflate($_)'

Важной частью является -WindowBits => -15 который изменяет ожидаемый формат на необработанный без контрольной суммы adler.

(это взято из источника dovecot, у меня работает на Thunderbird для захвата сети gmail).

Из RFC4978, который определяет сжатие IMAP (выделено мое):

При использовании библиотеки zlib (см. RFC1951) для реализации этого расширения достаточно использовать функции deflateInit2(), deflate(), inflateInit2() и inflate (). Значение windowBits должно быть в диапазоне от -8 до -15, иначе deflateInit2 () использует неправильный формат. deflateParams() может использоваться для улучшения степени сжатия и использования ресурсов. Аргумент Z_FULL_FLUSH для deflate () может быть использован для очистки словаря (принимающий узел не должен ничего делать).

Другие вопросы по тегам