Декодирование сериализованных данных — возможно, Google protobuff

#serialization #protocol-buffers

#сериализация #протокол-буферы

Вопрос:

Я чувствую, что перепробовал все.. У меня есть файл, сохраненный некоторым проприетарным программным обеспечением. Я хотел бы создать свой собственный файл, совместимый с программным обеспечением, поэтому я обратился к разработчику. Разработчик этого программного обеспечения заявил, что сохраненный файл был создан с использованием буферов протокола Google, но не смог понять мой запрос на используемый файл .proto. Он также настаивал на том, что использовался Google protobuf, и больше не хочет мне помогать. Я попробовал несколько технологий deoce, найденных в Интернете, но, похоже, ничто не считывает какие-либо данные из файла.

Кто-нибудь может помочь мне открыть и отредактировать этот файл?

https://filebin.ca/5lTSezDweL3w

Буду признателен за любую помощь в решении этой проблемы.

Комментарии:

1. В заголовке написано «GPB2», но после некоторого копания я не смог подтвердить, что protobuf использует эту волшебную строку. Как вы знаете, protobuf не описывает себя, что означает, что это просто двоичные данные. Возможно, вы сможете выполнить некоторую эвристику, просмотрев все нули и посмотреть, указывает ли это на тот или иной тип данных. Что вы могли бы сделать, это изменить переменную в программе и сравнить файл с ранее сохраненным файлом. Затем перепроектируйте, каким должен быть файл .proto.

2. Я только что обнаружил, что кто-то разобрал это раньше и использовал protobuf: memotech. franken.de/FileFormats /… Но я не уверен, как создать прототип файла, чтобы легко работать с этими файлами. Я понимаю, что это не самоописание, но, похоже, я не могу извлечь какие-либо необработанные данные из этого файла, даже необработанный дамп с использованием протокола.

3. Вам придется создать файл .proto самостоятельно, если вы не можете его найти. Помните заголовок «GPB2», ну, в pdf-файле, которым вы поделились, говорится, что это «Формат Insight Map Creator V0.7.4.x» (стр. 9). Он сообщает вам, что первым полем заголовка является uint, который выглядит как sfixed64, за которым следует varint, который, вероятно, является uin64. Предполагается, что это длина, поэтому вы можете декодировать ее, чтобы увидеть, совпадает ли это. Это утомительно, но pdf делает это намного проще.

4. Жалуется ли он на ошибки данных, если вы запустите его protogen.marcgravell.com/decode ? Если это не так (т. Е. Он показывает данные, даже если вы еще не можете их понять), я, вероятно, смогу помочь вам перепроектировать схему

5. Нет, он ничего не показывает