0

我需要分析一个包含来自科学仪器的原始数据的二进制数据文件。快速查看十六进制查看器表明这可能没有加密或任何花哨的东西:整数可能会写成整数(但我不知道什么字节顺序),谁知道浮点数。

我可以访问可以查看文件内容的(封闭源代码)程序。所以我可以看到某个值是 74078。实际上搜索我不确定的值 - 我是否搜索 00 01 21 5E、其他字节顺序等?(Hex Fiend 不支持搜索十进制值)我如何找到浮点数?

生成这些文件的软件在 XP 上运行。如果可能的话,我更喜欢在 OSX 上运行的工具。

(嗯,我写了这个问题,忘记发布了,然后解决了这个问题。我想我会写我自己的答案。)

4

1 回答 1

2

最终,Hex Fiend足够了。我期望做的事情:

  1. 将已知值转换为十六进制
  2. 搜索它

我实际上做了什么:

  1. 选择一个看起来可能有用的随机十六进制块
  2. 告诉 Hex Fiend 将其显示为整数或浮点数,无论是小端还是大端,直到它给出一个看似合理的结果(即,45.000 比一些大整数更合理)
  3. 在我从封闭源程序获得的结果中搜索该结果。
  4. 记录它,回到步骤 1。(除了通常下一个块不会是“随机的”,而是按顺序跟随。)

在这种情况下,实际上只有三个(二进制)变量用于解释数据:

  1. 浮点数或整数
  2. 2 字节或 4 字节
  3. 小端或大端

变量越多,任务就越困难。如果 Hex Fiend 可以直接搜索整数/浮点数,也许会尝试不同的组合,那就太好了。也许其他十六进制查看器会这样做。

为了回答我最初的一个问题,74078 原来存储为 5E2101。多一点试验和错误,我就会到达那里。:)

更新 如果我再做一遍,我会使用“ Synalyze It!”,一个专为此目的而设计的工具。

在此处输入图像描述

于 2011-10-11T04:58:35.333 回答