0

科学機器からの生データを含むバイナリ データ ファイルを分析する必要があります。16 進数ビューアーをざっと見てみると、おそらく暗号化も凝ったものでもないことがわかります。整数はおそらく整数として書き込まれます (ただし、バイト順はわかりません)。浮動小数点については誰にもわかりません。

ファイルの内容を表示できる (クローズド ソース) プログラムにアクセスできます。したがって、特定の値が74078であることがわかります。実際にその値を検索すると、よくわかりません-00 01 21 5E、他のバイトオーダーなどを検索しますか? (Hex Fiend は 10 進数値の検索をサポートしていません) では、浮動小数点数を見つけるにはどうすればよいでしょうか?

これらのファイルを生成するソフトウェアは、XP で実行されます。可能であれば、OSX 上で動作するツールが望ましいです。

(うーん、私はこの質問を書いて、投稿するのを忘れて、問題を解決しました。私は自分の答えを書くと思います。)

4

1 に答える 1

2

最終的には、Hex Fiend で十分であることが判明しまし。私が期待していたこと:

  1. 既知の値を 16 進数に変換する
  2. それを検索

私が実際にしたこと:

  1. 有用な値であると思われる 16 進数のランダムなチャンクを選択します
  2. Hex Fiend に、もっともらしい結果が得られるまで、リトルエンディアンまたはビッグ エンディアンのいずれかで、整数または浮動小数点として表示するように指示します (つまり、45.000 は、巨大な整数よりもはるかに妥当です)。
  3. その結果を、クローズド ソース プログラムから得た結果で検索します。
  4. それを文書化して、ステップ 1 に戻ります。

この場合、データをどのように解釈するかについて、実際には 3 つの (バイナリ) 変数しかありませんでした。

  1. 浮動小数点または整数
  2. 2バイトまたは4バイト
  3. リトルエンディアンまたはビッグエンディアン

より多くの変数を使用すると、タスクははるかに難しくなります。Hex Fiend が整数/浮動小数点数を直接検索して、さまざまな組み合わせを試すことができればよかったのにと思います。おそらく、他の 16 進ビューアもそうでしょう。

私の最初の質問の 1 つに答えると、74078 は 5E2101 として保存されていることが判明しました。もう少し試行錯誤すれば、そこにたどり着いたでしょう。:)

更新 これをやり直す場合は、まさにこの目的のために設計されたツールである「 Synalyze It !」を使用します。

ここに画像の説明を入力

于 2011-10-11T04:58:35.333 に答える