Обратный инжиниринг содержимого шестнадцатеричного файла - PullRequest
0 голосов
/ 14 января 2019

Прежде всего, извините за широту вопроса, но я даже не уверен, возможно ли это на данный момент.

У меня есть старая программа, которая может читать некоторые файлы необработанных данных и экспортировать часть содержимого очень маленькими порциями (слишком маленькими, отсюда и проблема).

Это означает, что я могу получить реальные данные и проверить правильность моего преобразования.

До сих пор я пробовал разные вещи, и я вижу, что файлы данных также содержат метаинформацию в начале.

Глядя на необработанные данные, кажется, что есть определенная точка, в которой начинаются фактические данные, поскольку они очень редки в начале (множество последовательных нулей повсюду), и в какой-то момент начинаются данные измерений.

Я могу более или менее получить метаданные в начале, и я думаю, что было бы возможно определить, где начинаются их фактические данные, но я не могу найти способ получить правильные числа, которые соответствуют экспортированным данным ,

Экспортируемые выходные данные варьируются от [-3165, 3164] (по крайней мере, от того, что я экспортировал до сих пор вручную. Это выглядит как нечто среднее между 8-разрядными целыми числами со знаком и 16-разрядными целыми числами, что странно для меня, но, возможно, я что-то упустил?

Опять же, извините за широту вопроса, но я действительно мог бы использовать некоторую помощь, как подойти к этой проблеме, и некоторую информацию о том, возможно ли это вообще.

Спасибо!

EDIT: Данные просто в шестнадцатеричном виде:

0000 0004 2041 564c 0000 0004 2041 5646 

Что касается кода, я не продвинулся дальше, чем:

with open(file_path, 'rb') as f:
    for line in f.readlines():
        text = bytearray(line).decode("utf-8", "ignore")
        print(text)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...