2017-02-22 78 views
2

我有一個二進制文件,我需要從中提取信息。 我知道這是一個壓縮文件,該文件的前3個字符是zip 我非常確定LZ Substitution和/或Huffman Coding被用來壓縮這個文件。 但該文件不遵循任何規則的檔案格式,如.rar或.zip文件等從未知的壓縮文件中提取數據

我試圖讀取該文件,並發現了以下模式 Part (C) is truncated to make it fit the figure

的文件有3個部分:

部分(A)示出爲16個字節,幷包括8個字節作爲簽名 具有下列特徵值頭:122,105,112,1,0,12,0,0

部分(B)是一個列表的地址(271),每個指向一個特定的地址文件的ss,我相信它是(C)部分中的記錄起點。

(C)部分是實際的數據

第一地址(716在圖中)示出的部分(C)中的第一個記錄(組塊)的地址中,由於(C)部分開始的確切時間的部分( B)結束第一個地址是部分(B)結束和部分(C)開始的地址,並且由於文件在部分(C)結束之後結束,部分B列表中的最後一個地址指向文件結尾部分(C)中的最後一個記錄(塊)結束。

爲了使它適合圖中我不得不削減部分(C)中的記錄(塊),他們有更多的字符,正如你在圖中看到的第一個記錄(塊)有472字節長度。

每個塊有不同的長度,所以它們的長度不相等。 也是最大的記錄長度存儲在頭(字節13,14,15,16)這是955(187,3,0,0)我不知道爲什麼它可能會來得心應手,而閱讀壓縮文件。

當你看到所有記錄以兩個字節開頭(120,218) 結尾字符不會被記錄重複記錄,實際上它們看起來非常隨機。

我在記錄末尾沒有看到霍夫曼樹或霍夫曼表之間有任何相似之處,但爲了看看這個文件,我已經在這裏上傳了它。

任何幫助提取文件中的壓縮數據真的很感激。

Download Part (C)

回答

3

在(C)部分中的每一行是一個zlib的壓縮塊的文件。

前兩個字節是120,218這是zlib簽名和4最後應該是adler32。

+0

典型的zlib格式 – Rassam

相關問題