0

我目前正在尝试从 .DLL 库中提取一些数据 - 我已经弄清楚了文件结构(有 1039 个用 zlib 压缩的数据块,从偏移量 0x3c00 开始,最后一个是胖表)。胖表本身分为 1038 个“块”(8 个字节 + 一个 base64 编码的字符串 - 文件名)。据我所知,字节 5 是文件名的长度。

我的问题是我似乎无法理解字节 1-4 的用途:我的第一个猜测是它们是在 .DLL 中定位文件块的偏移量(主要是因为整个表中的值都在增加),但例如,在这种情况下,第一个“块”是:

  1. 假设偏移量:2E 78 00 00
  2. 文件名长度:30 00 00 00
  3. Base64 编码文件名:59 6D 46 30 64 47 78 6C 58 32 6C 75 64 47 56 79 5A 6D 46 6A 5A 56 78 42 59 33 52 70 64 6D 56 51 5A 58 4A 72 63 7 31 6 4E 7F 6 3D 3D

然而,正如我之前所说,块本身位于 0x3c00,所以事情不匹配。第二个块也是如此(从 0x3f0b 开始,而表假定的偏移量是 0x167e)

有任何想法吗?

4

1 回答 1

0

回答我自己的问题哈哈

无论如何,这些数字文件块的实际偏移量,除了第一个从某个随机数而不是从第一个块的实际位置开始的事实。但是,除此之外,每对偏移之间的差异确实与相应块的长度相匹配。

于 2013-06-24T01:18:08.613 回答