Wie decode binary/raw google protobuf-Daten

Ich wurde ein Speicherabbild mit kodierten protobuf Daten, und ich will zu entschlüsseln dieser Daten und den Inhalt sehen. Ich habe die .proto-Datei, die definiert, diese Botschaft in der raw-Protokoll-Puffer.
Meine proto-Datei sieht wie folgt aus:

$  cat my.proto 
message header {
  required uint32 u1 = 1;
  required uint32 u2 = 2;
  optional uint32 u3 = 3 [default=0];
  optional bool   b1 = 4 [default=true];
  optional string s1 = 5;
  optional uint32 u4 = 6;
  optional uint32 u5 = 7;
  optional string s2 = 9;
  optional string s3   = 10; 
  optional uint32 u6 = 8;
}

Und protoc version:

$  protoc --version
libprotoc 2.3.0

Ich habe versucht, die folgenden:

  1. Dump der Rohdaten aus dem Kern

    (gdb) dump memory b.bin 0x7fd70db7e964 0x7fd70db7e96d

  2. Pass es auf protoc

    //proto file (my.proto) is in the current dir

    $ protoc --decode --proto_path=$pwd my.proto < b.bin

    Missing value for flag: --decode

    To decode an unknown message, use --decode_raw.

    $ protoc --decode_raw < /tmp/b.bin

    Failed to parse input.

Irgendwelche Gedanken auf, wie Sie zu entschlüsseln? Die Dokumentation erklärt nicht viel, wie man über es.

Bearbeiten:
Daten im Binär-format (10 Byte)

(gdb) x/10xb 0x7fd70db7e964
0x7fd70db7e964: 0x08    0xff    0xff    0x01    0x10    0x08    0x40    0xf7
0x7fd70db7e96c: 0xd4    0x38

InformationsquelleAutor brokenfoot | 2016-01-27

Schreibe einen Kommentar