Decode 从未知的压缩文件中提取数据

Decode 从未知的压缩文件中提取数据,decode,unzip,lzo,compression,Decode,Unzip,Lzo,Compression,我有一个二进制文件,我需要从中提取信息。 我知道这是一个压缩文件,文件的前3个字符是zip 我很确定LZ替换和/或哈夫曼编码被用来压缩这个文件。 但是,该文件不遵循任何常规存档格式,如.rar、.zip等 我试图读取该文件并发现以下模式 该文件有3个部分: 第(A)部分显示了16个字节的标头,其中包括8个字节作为签名 具有以下字符值:122105112,1,0,12,0,0 (B)部分是地址列表(271),每个地址指向文件的特定地址,我相信这是(C)部分记录的起点 (C)部分是实际数据 第一个

我有一个二进制文件,我需要从中提取信息。 我知道这是一个压缩文件,文件的前3个字符是zip 我很确定LZ替换和/或哈夫曼编码被用来压缩这个文件。 但是,该文件不遵循任何常规存档格式,如.rar、.zip等

我试图读取该文件并发现以下模式

该文件有3个部分:

第(A)部分显示了16个字节的标头,其中包括8个字节作为签名 具有以下字符值:122105112,1,0,12,0,0

(B)部分是地址列表(271),每个地址指向文件的特定地址,我相信这是(C)部分记录的起点

(C)部分是实际数据

第一个地址(图中的716)显示了第(C)部分中的第一个记录(区块)地址,因为第(C)部分恰好在第(B)部分结束时开始。第一个地址是第(B)部分结束和第(C)部分开始的地址,而且文件在第(C)部分结束后结束,B部分列表中的最后一个地址指向(C)部分中最后一条记录(区块)结束的文件结尾

为了使其适合于图中,我必须剪切(C)部分中的记录(块),它们有更多的字符,如图中所示,第一条记录(块)有472字节的长度

每个区块的长度不同,因此它们的长度不相等。 另外,最大记录的长度存储在头文件(字节13,14,15,16)中,即955(187,3,0,0)。我不知道为什么在读取压缩文件时它会很方便

如您所见,所有记录都以两个字节(120218)开头 结尾字符不会一个记录一个记录地重复,实际上它们看起来非常随机

在记录末尾,我看不到哈夫曼树或哈夫曼表之间有任何相似之处,但为了查看该文件,我将其上传到这里

非常感谢对提取文件中压缩数据的任何帮助

第(C)部分中的每一行都是一个zlib压缩块文件

前两个字节是120218,这是zlib签名,最后4个字节应该是adler32