E 'possibile decodificare i file serializzati protobuf senza schema con strumenti o altro che decodifichi i dati binari in formato leggibile?Decodifica protobuf senza schema
6
A
risposta
5
È possibile spesso dedurre lo schema. Infatti, IIRC lo strumento "protoc" ha una serie di parametri (--decode_raw
, iirc) dove farà esattamente questo - facendo ipotesi informate. Tuttavia, è un'ipotesi - il formato è ambiguo che più diversi tipi di dati possono essere memorizzati nei stessi meccanismi - per esempio, un pezzo di lunghezza con prefisso potrebbe essere:
- un sotto-oggetto (di qualsiasi tipo di utente)
- un allineamento al sacco (di vari tipi primitivi)
- una stringa UTF-8
- un byte greggio []
- e probabilmente qualcos'altro che sto dimenticando
Allo stesso modo, un chunk di larghezza fissa di 4 byte può essere un numero intero a larghezza fissa o un valore float; il numero intero potrebbe essere firmato o non firmato.
Trovato un esempio: http://stackoverflow.com/a/12378656/23354 –
Sono stanco di alimentare un file che viene serializzato con esso, e ho scritto protoc nomefile.protobuf --decode_raw e dice che nessun file di input deve be givien –
@moaz vedi l'esempio? –