解压缩IMAP缩减的消息

时间:2017-03-02 04:46:49

标签: compression imap deflate inflate

我在尝试解压缩使用deflate方法压缩的imap消息时遇到问题。到目前为止我尝试过的东西是隔离IMAP对话的一个方向(使用wireshark的跟随tcp函数)并以原始格式保存消息数据,我希望它只包含泄露的消息部分。然后我找到了一些程序,如tinf(第1和第3个例子)和miniz(tgunzip示例),并尝试对该文件进行充气,但没有成功。 我错过了什么?提前谢谢。

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

1 个答案:

答案 0 :(得分:0)

尝试将原始数据传递给:

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

重要的部分是-WindowBits => -15,它将预期的格式更改为 raw ,而不使用adler校验和。

(源自dovecot源代码,适用于我在Thunderbird上进行gmail网络捕获)。

来自指定IMAP压缩的RFC4978(强调我的):

  

使用zlib库(参见RFC1951)时的功能      deflateInit2(),deflate(),inflateInit2()和inflate()就足够了      实现此扩展。 windowBits值必须在范围内      -8到-15,否则deflateInit2()使用错误的格式。      deflateParams()可用于提高压缩率和资源      使用。 deflate()的Z_FULL_FLUSH参数可用于清除      字典(接收对等体不需要做任何事情)。