Декодирование protobuf без схемы

можно ли декодировать сериализованные файлы protobuf без схемы с помощью инструментов или чего-либо, что декодировало бы двоичные данные в читаемый формат?

1 ответов


вы часто можете вывести схемы. Фактически, IIRC инструмент "Protocol" имеет набор параметров (--decode_raw, iirc), где он будет делать именно это, - делая обоснованные догадки. Однако это и предположение-формат неоднозначен в том, что несколько разных типов данных могут храниться в одних и тех же механизмах - например, фрагмент с префиксом длины может быть:

  • подобъект (любого типа пользователя)
  • упакованный массив (различного примитива типы)
  • строка utf-8
  • сырое байт[]
  • что-то я забываю

аналогично, 4-байтовый фрагмент фиксированной ширины может быть целым числом фиксированной ширины или поплавком; целое число может быть подписано или без знака.