我必须解码一种主要包含时间序列数据的专有文件格式。告诉我的唯一内容是内容已“压缩”,尽管我不确定是真的压缩还是使用了内部压缩方法。
这是数据的摘要:

789cecdd55d895d5bb057c26489774a7ac798f713feffbd2dd255d4a2b29
082220a1d24887020648194883747788a4840828024a4a238d347c13beef
60afb5f777fcac83e7372efedb8d27e3bae635e386d7b592c5cb9f375ebc
93f1e2c543bc4b09dac5eb302c7f3c5303a910835d32c2f6b579a41bc633
ab66d2945a4c47e95d36e52db44246647789178832c6b03792a0a574b2bb
b493d194a3f81b9fb3bf1ed734de70adcacdf2a5ac922228122c5f9431ed


我进行了[byte]频率分析,结果显示出均匀的分布。如果字节是使用AXE绘制的,则显示非常相似的图像:



我检查了常见压缩算法的标头,但没有找到。

任何帮助都将受到高度赞赏。第三个文件,第四个文件

无法生成/验证这些文件的可执行文件。

编辑2

使用binwalk -Me <filename>(github.com/ devttys0 / binwalk)可以从每个先前的文件中提取两个zlib-ed文件。

这是其中一个文件的标题:

0a002f220000180100002800e80364001f783c0001a0349c3574367136db
3582348932bb30dd30a12f2b2f542ff02e432f432ff62edd2f772f6a2f2e
2fbc2edb2d382dcc2cfe2c272d492d342d1d2d352d352d00000000000000
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000


评论

生成或处理文件的代码对您可用吗?您可以收集多少个文件样本?您能够触发对已修改文件的任何验证吗?您可以共享整个文件吗?更多信息将在这里提供帮助

共享整个文件将极大地帮助您。还有,一旦解压缩了zlib'd blob,会有什么?

分析专有文件格式的最佳方法-分析应接收和处理此文件格式的软件。我认为您应该从二进制RE开始,该RE能够使用此文件格式创建文件,读取文件或从\转换为它。您可以访问那些吗?

@DenisLaskov OP已经提到他没有。 “生成/验证这些文件的可执行文件不可用。”既然您已经找到了第一层,那么上传未压缩的文件就很好了。

#1 楼

如果我知道数据代表什么,这将有所帮助,但是一旦解压缩,我便确定了文件的格式。每个解压缩的文件都具有以下结构:

short unk1;           // 10
short num_records;    // 8751  (8760 hours per year)
short unk2;           // 0
short num_samples;    // varies per file from 8 to 179
short unk3;           // 0
short unk4;           // 40
short unk5;           // 1000
short unk6;           // 100
int data_bytecount;   // varies per file (remaining byte count of the file)
Record records[num_records];


其中每个记录定义为:(定义为010Editor模板)

typedef struct {
    byte flag;                // 0 = no data; 1 = sample data follows
    if(flag == 1)
        short data[num_samples];
} Record;


例如,在从“ 295”解压缩的第一个文件中,有8751个记录,每个记录有179个样本。大多数记录只有〜30个非零值。记录[0]的样本如下:或使用16384作为正数/负数的零参考。我还怀疑每个文件都包含1年的记录,每小时1个记录。

我想知道这些值代表什么……只是为了有一个完整的图片。