2017-02-22 15 views
2

私はそこから情報を抽出するために必要なバイナリファイルを持っています。 圧縮ファイルで、ファイルの最初の3文字はです。zip 私はこのファイルを圧縮するためにLZ SubstitutionやHuffman Codingが使用されていると確信しています。 ファイルは、.rarを、.zipファイルやなど未知の圧縮ファイルからデータを抽出する

として任意の正規のアーカイブ形式に従っていません。しかし、私は、ファイルが3つの部分を持っているファイルを読み込もうとしましたが、次のスキーマ Part (C) is truncated to make it fit the figure

を見出しました:

パート(A)は、16バイトであり、以下の文字の値を有する署名 として8つのバイトを含むヘッダを示す:122,105,112,1,0,12,0,0

パート(B)のリストでありますアドレス(271)の各アドレスは、特定のアドレス(C)のレコードの開始点であると私は信じています。パート(C)が正確にいつ始まるので

パート(C)は、実際のデータ

先頭アドレス(図中716)の部分(C)内の最初のレコード(チャンク)アドレスを示している部分( B)は、パート(B)が終了しパート(C)が開始するアドレスであり、パート(C)が終了した後にファイルが終了するので、パートBのリストの最後のアドレスはファイルの最後を指している最後の部分(C)のレコード(チャンク)が終了します。

図のように、レコード(塊)を部分(C)でカットしなければならなかったので、図のように、472バイトの長さを持っています。

各チャンクの長さが異なるため、長さが異なります。 また、最大のレコードの長さはヘッダー(バイト13,14,15,16)に格納されています。これは955(187,3,0,0)です。なぜ圧縮ファイルを読み込んでいるのか分かりません。

すべてのレコードは2バイト(120,218)で始まります。 終了文字はレコードによって繰り返し記録されることはなく、実際は非常にランダムに見えます。

レコードの最後にハフマンツリーやハフマンテーブルの類似点はありませんが、ファイルを見るためにここにアップロードしました。

ファイル内の圧縮されたデータを抽出するためのヘルプは本当に感謝しています。

Download Part (C)

答えて

3

(C)部分の各行は、ZLIB圧縮チャンク・ファイルです。

最初の2バイトはzlib署名である120,218であり、最後の4バイトはadler32でなければなりません。

+0

典型的なzlib形式 – Rassam

関連する問題