Инструменты, подходы для анализа фирменного формата данных? - PullRequest
0 голосов
/ 11 октября 2011

Мне нужно проанализировать файл двоичных данных, содержащий необработанные данные из научного инструмента.Беглый взгляд в шестнадцатеричной программе просмотра показывает, что это, вероятно, не шифрование или что-то необычное: целые числа, вероятно, будут записаны как целые числа (но я не знаю, какой порядок байтов), и кто знает о плавающей запятой.доступ к программе (с закрытым исходным кодом), которая может просматривать содержимое файла.Таким образом, я вижу, что определенное значение равно 74078. На самом деле в поиске этого значения я не уверен - ищу ли я 00 01 21 5E, какой-то другой порядок байтов и т. Д.?(Hex Fiend не поддерживает поиск десятичных значений) И как мне найти число с плавающей запятой?

Программное обеспечение, которое производит эти файлы, работает на XP.Я бы предпочел инструменты, которые работают на OSX, если это возможно.

(Хм, я написал этот вопрос, забыл опубликовать его, затем решил проблему. Я думаю, что напишу свой собственный ответ.)

1 Ответ

2 голосов
/ 11 октября 2011

В итоге Hex Fiend оказалось достаточно всего .Что я ожидал сделать:

  1. Преобразовать известное значение в шестнадцатеричное
  2. Найти его

Что я на самом деле сделал:

  1. Выберите случайный кусок гексагона, который выглядел так, как будто это может быть полезным значением
  2. Скажите Hex Fiend, чтобы он отображался как целое число или как число с плавающей точкой, либо с прямым или обратным порядком байтов, пока он не далправдоподобный результат (т. е. 45.000 гораздо более правдоподобно, чем какое-то огромное целое число)
  3. Поиск этого результата по результатам, полученным мной из программы с закрытым исходным кодом.
  4. Документируйте, вернитесь кШаг 1. (За исключением того, что обычно следующий фрагмент не был бы «случайным», но следовал бы последовательно.)

В этом случае действительно было только три (двоичные) переменные для того, как интерпретировать данные:

  1. с плавающей запятой или целое число
  2. 2 байта или 4 байта
  3. маленький или старший порядковый номер

При наличии дополнительных переменных задача будетнамного сложнее.Было бы неплохо, если бы Hex Fiend мог напрямую искать целые числа / числа с плавающей запятой, возможно, пробуя различные комбинации.Возможно, это делают другие читатели.

И, чтобы ответить на один из моих первоначальных вопросов, 74078 оказалось как 5E2101.Еще немного проб и ошибок, и я бы туда попал.:)

ОБНОВЛЕНИЕ Если бы я делал это снова, я бы использовал " Synalyze It !", Инструмент, предназначенный именно для этогоцель.

enter image description here

...