从 ESRI ArcGIS 使用的 LYR 文档中提取的此序列中的模式是什么

逆向工程 二元分析
2021-06-24 05:13:35

我正在尝试对二进制格式进行逆向工程,并且遇到了可变长度的数字序列,这些数字序列因文件而异。我无法弄清楚这里的模式以及如何确定这个序列有多长。我 99% 确定该序列是独立的,不依赖于文件前面部分的任何信息。

该序列的一个示例(十六进制)是:

06 00 00 00    01 00 00 00    fd ff ff  ff     08 00 00 00    f7 ff ff ff     0e 00 00 00 

对我来说,这看起来像是一个小端有符号整数序列(即 6, 1, -3, 8, -9, 14)

这是我收集的一些序列:

  • 6, 1, -3, 8, -9, 14
  • 5、-11、10、13、-14、27
  • 2, 0, 3
  • 3, 6, -7, 9
  • 3, 1, -3
  • 348, 1, -348
  • 4, 1, -4
  • 18, 1, -18
  • 28, 1, -28
  • 244, 1, -244
  • 70, 1, -70
  • 449, 1, -446, 453, 455, -456
  • 12, 0, -1, 5, 9, 11, -12, 14, 17, 19, 25, 31, 33
  • 69, 7, 13, 31, 87, 136, 168, 267,275, 277, 323, -324, 327, 329, 331, 334, -334, 337, 340, 344, 3,3,371 422, -423, 426, 429, 432, 446, 686, -689, 692, -709,725, -727, 731, 833, 837, 841, 845, 856, 860, 87, 8 8 8 , 887, 909
  • 1、2
  • 1, 861
  • 1, 22
  • 1, 1
  • 1, 78
  • 1, 93
  • 1、5
  • 1、9
  • 1, 4016

有任何想法吗?

更新: 根据要求,一些额外的背景:

  • 这是 ESRI ArcGIS 制图软件使用的“LYR”文档格式的一部分。LYR 文件是使用 Microsoft 复合文档格式构建的。所有有用的内容都存储在文档中包含的单个文件中。
  • 此文件流使用(变体)COM IPersistStream 接口来编码对象的内容/属性
  • LYR 对象由对象层次结构组成——它们基本上直接代表原始对象类结构,层包含一个渲染器,它本身包含多个填充/线条/标记符号、一个“标签属性”对象、一个“字段”集等.
  • 该序列发生在读取由“FeatureLayer”对象编码的字节的中途。它几乎位于由 FeatureLayer 对象编码的内容的中间,并且不属于任何页眉或页脚。
  • 对于遇到的 99% 的文件,此序列由单个00 00 00 00整数组成。
  • 在上面的序列中绝对没有遗漏数字的机会——序列的两侧以已知用途的字节为边界(代表层的“感兴趣区域”Envelope 对象的持久流和层“扩展”对象的数组-- 两者都是 FeatureLayer 类的直接成员)。
  • 这个序列似乎不包含任何实际有用的内容——FeatureLayer 对象类的每个成员都在别处编码
  • 这些文件没有损坏,并且可以在原始软件 (ArcMap) 中正常打开。但是,将它们保存而不进行任何更改会导致从文件中删除序列。它可能只是在早期版本的软件中编写的东西,或者它代表一些临时/缓存的值,这些值不直接构成持久对象状态的一部分......
0个回答
没有发现任何回复~