0

我需要分析一個包含來自科學儀器的原始數據的二進制數據文件。在十六進制查看器中快速查看,表明可能沒有加密或任何幻想:整數可能會寫成整數(但我不知道字節順序),誰知道浮點數。分析專有數據格式的工具和方法?

我有權訪問可以查看文件內容的(封閉源代碼)程序。所以我可以看到一個特定的值是74078.實際上,我不確定搜索該值 - 我是否搜索00 01 21 5E,其他字節順序等? (Hex Fiend不支持搜索十進制值)我怎樣才能找到一個浮點數?

生成這些文件的軟件在XP上運行。如果可能的話,我更喜歡在OSX上運行的工具。

(嗯,我寫了這個問題,忘了將它張貼,則解決了這個問題。我想我會寫我自己的答案。)

+0

相關問題(以前沒有發現它們):http://stackoverflow.com/questions/492751/tools-to-help-reverse-engineer-binary-file-formats –

回答

2

最終,六角惡魔竟然是只是足夠。我所期待的事:

  1. 轉換爲已知值成十六進制
  2. 搜索它

我實際做:

  1. 選擇十六進制的隨機塊,看起來像它可能是一個有用的值
  2. 告訴十六惡魔以整數或浮點形式顯示在小端或大端,直到它給出了一個合理的廁所國王的結果(即45.000是比一些巨大的整數更合理)
  3. 搜索從閉源程序中得到的結果。
  4. 文檔吧,回到步驟1,(除正常情況下一大塊不會是「隨機」,但將依次出現。)

在這種情況下,真的只有三個(二進制)

  1. 浮子或整數
  2. 2字節或4字節
  3. 小或大端
012:對於如何解釋數據變量

隨着更多的變量,任務將變得更加困難。如果Hex Fiend可以直接搜索整數/浮點數,可能會嘗試不同的組合。也許其他十六進制觀衆也可以。

並回答我原來的一個問題,74078結果被存儲爲5E2101。多一點試驗和錯誤,我會到達那裏。 :)

UPDATE 如果我用這樣做,我會使用「Synalyze It!」,旨在出於這樣的目的的工具。

enter image description here

+0

哦,我仍然不確定如何將浮點數轉換爲十六進制。 –