2017-03-02 61 views
1

我有一個問題,試圖解壓縮使用泄氣方法壓縮的imap消息。到目前爲止,我嘗試過的東西是隔離IMAP對話的一個方向(使用wireshark的跟蹤tcp函數),並以原始格式保存消息數據,我希望它只包含泄漏的消息部分。然後我發現了一些程序,比如tinf(第一個和第三個例子)和miniz(tgunzip例子),並嘗試將這個文件膨脹,但沒有成功。 我錯過了什麼?先謝謝你。解壓縮IMAP泄氣消息

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

+0

IMAP壓縮整個流,而不僅僅是消息,所以你不能從其上下文中刪除消息。該消息取決於較早的字節。在CRLF之後,您必須從服務器說OK的地方開始放氣至COMPRESS DEFLATE命令。 Tinf看起來應該減壓,*如果*你得到剪切和粘貼的權利。 – arnt

+0

不幸的是它不起作用。仍然得到膨脹()失敗狀態-3 – veliki

+0

注意你的剪切和粘貼。 – arnt

回答

0

嘗試管道是原始數據:

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

的重要組成部分,是改變預期的格式轉換成原料一個沒有阿德勒校驗-WindowBits => -15

(這是源自鴿舍源,適用於我在Thunderbird到Gmail網絡捕獲)。

RFC4978指定IMAP壓縮(重點煤礦):

當使用zlib庫(見RFC1951),則各功能 deflateInit2(),放氣(),inflateInit2()和膨脹()可以用 實現這個擴展。 windowBits值必須在 -8到-15的範圍內,否則deflateInit2()將使用錯誤的格式。 deflateParams()可用於提高壓縮率和資源 的使用。 deflate()的Z_FULL_FLUSH參數可用於清除字典(接收方不需要執行任何操作)。