GithubHelp home page GithubHelp logo

mildsunrise / protobuf-inspector Goto Github PK

View Code? Open in Web Editor NEW
909.0 25.0 94.0 29 KB

๐Ÿ•ต๏ธ Tool to reverse-engineer Protocol Buffers with unknown definition

License: ISC License

Python 100.00%
reverse-engineering protocol-buffers serialization

protobuf-inspector's Introduction

protobuf-inspector

Simple program that can parse Google Protobuf encoded blobs (version 2 or 3) without knowing their accompanying definition. It will print a nice, colored representation of their contents. Example:

Main screenshot

As you can see, the field names are obviously lost, together with some high-level details such as:

  • whether a varint uses zig-zag encoding or not (will assume no zig-zag by default)
  • whether a 32-bit/64-bit value is an integer or float (both shown by default)
  • signedness (auto-detect by default)

But protobuf-inspector is able to correctly guess the message structure most of the time. When it finds embedded binary data on a field, it'll first try to parse it as a message. If that fails, it'll display the data as a string or hexdump. It can make mistakes, especially with small chunks.

It shows the fields just in the order they are encoded in the wire, so it can be useful for those wanting to get familiar with the wire format or parser developers, in addition to reverse-engineering.

Usage

You can install with pip:

pip install protobuf-inspector

This installs the protobuf_inspector command. Run it, feeding the protobuf blob on stdin:

protobuf_inspector < my-protobuf-blob

After reading the first (blind) analysis of the blob, you typically start defining some of the fields so protobuf-inspector can better parse your blobs, until you get to a point where you have a full protobuf definition and the parser no longer has to guess anything.

Read about defining fields here.

Parsing errors

If a parsing error is found, parsing will stop within that field, but will go on unaffected at the outside of the hierarchy. The stack trace will be printed where the field contents would go, along with a hexdump indicating where parsing was stopped in that chunk, if applicable.

So, if you specified a uint32 and a larger varint is found, you'd get something like:

Error on invalid varint

If you specified that some field contained an embedded message, but invalid data was found there, you'd get:

Error on invalid message

Please note that main.py will exit with non-zero status if one or more parsing errors occurred.

Tricks

There are some tricks you can use to save time when approaching a blob:

  1. If you are positive that a varint does not use zig-zag encoding, but are still not sure of the signedness, leave it as varint. If it does use zig-zag encoding, use sint64 unless you are sure it's 32-bit and not 64-bit.

  2. If a chunk is wrongly being recognized as a packed chunk or an embedded message, or if you see something weird with the parsed message and want to see the raw bytes, specify a type of bytes. Conversely, if for some reason it's not being detected as an embedded message and it should, force it to message to see the reason.

  3. If you want to extract a chunk's raw data to a file to analyze it better, specify a type of dump and protobuf-inspector will create dump.0, dump.1, etc. every time it finds a matching blob.

  4. protobuf-inspector parses the blob as a message of type root, but that's just a default. If you have lots of message types defined, you can pass a type name as optional argument, and protobuf-inspector will use that instead of root:

    protobuf_inspector request < my-protobuf-blob
    

Programmatic access

Simple example:

from protobuf_inspector.types import StandardParser

parser = StandardParser()
with open('my-blob', 'rb') as fh:
   output = parser.parse_message(fh, "message")
print(output)

This project was not initially designed for use as a library, though, and its API might change. For a more complex example, see protobuf_inspector/__main__.py.

protobuf-inspector's People

Contributors

jordangoulder avatar mildsunrise avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

protobuf-inspector's Issues

New Here

Hello, I love your works. Am looking forward for you to be my mentor.

ValueError: Unsupported wire type 1

Hi, this is a great library to inspect protobuf. Thanks for making it available.

I came across this error: ValueError: Unsupported wire type 1 for this input message. When parsed in this web tool https://protobuf-decoder.netlify.app/, it seems to parse correctly. Any ideas?

0a c7 22 0a fd 01 08 c2 d8 bf 81 01 12 0f 11 50 f1 03 94 00 cd 00 00 00 f1 03 f0 03 00 1a 09 70 61 73 74 61 70 65 74 65 20 01 28 01 38 e2 fa 8f f6 03 8a 01 c4 01 08 fe a1 14 12 bd 01 08 fe a1 14 12 57 68 74 74 70 73 3a 2f 2f 73 74 75 66 66 69 63 6f 6e 73 2e 77 67 63 64 6e 2e 63 6f 2f 47 66 78 2f 61 76 61 74 61 72 5f 70 72 6f 67 72 65 73 73 69 76 65 5f 6b 6f 6c 6f 62 61 6e 6f 76 5f 31 2f 31 39 31 32 30 33 5f 31 32 30 37 34 37 5f 30 38 30 30 34 39 2e 70 6e 67 1a 58 68 74 74 70 73 3a 2f 2f 73 74 75 66 66 69 63 6f 6e 73 2e 77 67 63 64 6e 2e 63 6f 2f 47 66 78 32 2f 61 76 61 74 61 72 5f 70 72 6f 67 72 65 73 
73 69 76 65 5f 6b 6f 6c 6f 62 61 6e 6f 76 5f 31 2f 31 39 31 32 30 33 5f 31 32 30 37 35 32 5f 35 31 30 38 38 33 2e 70 6e 67 22 04 72 61 72 65 95 01 00 00 80 3f b0 01 03 0a 9c 02 08 c3 d8 bf 81 01 12 0f 21 2f 62 00 05 00 cc 00 00 00 53 00 12 00 00 1a 0c 4c 69 6e 67 68 75 69 5f 4d 65 6e 67 20 02 28 01 38 c4 e3 ac f2 03 42 05 43 48 49 4e 41 48 a9 15 68 f8 c3 06 8a 01 c3 01 08 fe ef 48 12 bc 01 08 fe ef 48 12 54 68 74 74 70 73 3a 2f 2f 73 74 75 66 66 69 63 6f 6e 73 2e 77 67 63 64 6e 2e 63 6f 2f 47 66 78 2f 61 76 61 74 61 72 5f 48 57 50 75 6d 70 6b 69 6e 5f 6c 65 67 65 6e 64 61 72 79 2f 32 32 30 39 31 34 5f 
31 33 32 37 35 30 5f 31 32 31 32 31 35 2e 77 65 62 70 1a 55 68 74 74 70 73 3a 2f 2f 73 74 75 66 66 69 63 6f 6e 73 2e 77 67 63 64 6e 2e 63 6f 2f 47 66 78 32 2f 61 76 61 74 61 72 5f 48 57 50 75 6d 70 6b 69 6e 5f 6c 65 67 65 6e 64 61 72 79 2f 32 32 30 39 31 34 5f 31 33 32 37 35 33 5f 33 38 32 34 33 39 2e 77 65 62 70 22 09 6c 65 67 65 6e 64 61 72 79 95 01 00 00 80 3f a0 01 01 a8 01 01 b0 01 ff ff ff ff ff ff ff ff ff 01 0a fe 02 08 c4 d8 bf 81 01 12 0f 21 63 08 04 6b 00 cc 00 00 00 07 04 10 04 00 1a 0c 4e 61 6e 6f 5f 5f 4c 65 67 65 6e 64 20 01 28 01 38 8f bd 83 e4 03 42 05 52 41 49 4e 31 48 ff 27 68 f8 f7 
09 8a 01 b9 01 08 fe e9 4e 12 b2 01 08 fe e9 4e 12 4f 68 74 74 70 73 3a 2f 2f 73 74 75 66 66 69 63 6f 6e 73 2e 77 67 63 64 6e 2e 63 6f 2f 47 66 78 2f 61 76 61 74 61 72 5f 32 30 32 33 5f 63 61 72 6e 5f 61 6e 69 6d 2f 32 32 31 32 32 39 5f 30 38 30 33 32 38 5f 32 33 33 31 31 33 2e 77 65 62 70 1a 50 68 74 74 70 73 3a 2f 2f 73 74 75 66 66 69 63 6f 6e 73 2e 77 67 63 64 6e 2e 63 6f 2f 47 66 78 32 2f 61 76 61 74 61 72 5f 32 30 32 33 5f 63 61 72 6e 5f 61 6e 69 6d 2f 32 32 31 32 32 39 5f 30 38 30 33 34 32 5f 31 38 34 30 35 35 2e 77 65 62 70 22 09 6c 65 67 65 6e 64 61 72 79 95 01 00 00 80 3f 9a 01 15 75 6e 69 71 
75 65 42 6f 6f 73 74 65 72 52 65 63 68 61 72 67 65 9a 01 16 75 6e 69 71 75 65 42 6f 6f 73 74 65 72 46 6f 72 46 72 65 65 58 70 9a 01 1d 75 6e 69 71 75 65 53 74 61 74 69 63 42 6f 6f 73 74 65 72 46 6f 72 43 72 65 64 69 74 73 9a 01 18 72 61 72 65 53 74 61 74 69 63 42 6f 6f 73 74 65 72 46 6f 72 47 6f 6c 64 a0 01 13 a8 01 02 b0 01 ff ff ff ff ff ff ff ff ff 01 0a 9f 02 08 c5 d8 bf 81 01 12 0f 11 41 a0 00 67 00 cc 00 18 00 85 00 5c 00 00 1a 0e 4c 69 74 74 6c 65 5f 44 75 64 65 73 6b 79 20 01 28 01 38 bc ae d3 e2 03 42 04 2d 44 52 2d 48 84 ab 04 68 f8 93 04 80 01 f8 e7 0f 8a 01 bf 01 08 fe f1 0e 12 b8 01 08 fe 
f1 0e 12 52 68 74 74 70 73 3a 2f 2f 73 74 75 66 66 69 63 6f 6e 73 2e 77 67 63 64 6e 2e 63 6f 2f 47 66 78 2f 61 76 61 74 61 72 5f 67 6f 6c 64 65 6e 5f 77 65 65 6b 5f 64 72 61 67 6f 6e 2f 31 39 30 34 31 38 5f 30 38 35 36 34 35 5f 32 34 30 33 30 32 2e 70 6e 67 1a 53 68 74 74 70 73 3a 2f 2f 73 74 75 66 66 69 63 6f 6e 73 2e 77 67 63 64 6e 2e 63 6f 2f 47 66 78 32 2f 61 76 61 74 61 72 5f 67 6f 6c 64 65 6e 5f 77 65 65 6b 5f 64 72 61 67 6f 6e 2f 31 39 30 34 31 38 5f 30 38 35 36 33 33 5f 30 35 39 35 38 30 2e 70 6e 67 22 09 6c 65 67 65 6e 64 61 72 79 95 01 00 00 80 3f a0 01 01 a8 01 01 b0 01 ff ff ff ff ff ff ff 
ff ff 01 0a fc 02 08 c6 d8 bf 81 01 12 0f 51 49 fb 03 5b 00 cd 00 00 00 f9 03 fe 03 00 1a 12 43 72 61 6e 69 61 6c 5f 49 6e 66 61 72 63 74 69 6f 6e 20 01 28 01 38 be 90 9d f1 03 42 05 5f 5f 46 57 5f 48 a5 cd 05 68 f8 2f 8a 01 d1 01 08 fe a9 26 12 ca 01 08 fe a9 26 12 5b 68 74 74 70 73 3a 2f 2f 73 74 75 66 66 69 63 6f 6e 73 2e 77 67 63 64 6e 2e 63 6f 2f 47 66 78 2f 61 76 61 74 61 72 5f 72 65 73 6f 75 72 63 65 5f 72 65 6d 6f 76 69 6e 67 5f 6c 65 67 65 6e 64 61 72 79 2f 32 31 30 32 32 34 5f 30 37 35 39 33 30 5f 38 35 31 34 36 38 2e 70 6e 67 1a 5c 68 74 74 70 73 3a 2f 2f 73 74 75 66 66 69 63 6f 6e 73 2e 77 
67 63 64 6e 2e 63 6f 2f 47 66 78 32 2f 61 76 61 74 61 72 5f 72 65 73 6f 75 72 63 65 5f 72 65 6d 6f 76 69 6e 67 5f 6c 65 67 65 6e 64 61 72 79 2f 32 31 30 32 32 34 5f 30 37 35 39 33 34 5f 38 32 32 30 38 32 2e 70 6e 67 22 09 6c 65 67 65 6e 64 61 72 79 95 01 00 00 80 3f 9a 01 15 75 6e 69 71 75 65 42 6f 6f 73 74 65 72 52 65 63 68 61 72 67 65 9a 01 16 75 6e 69 71 75 65 42 6f 6f 73 74 65 72 46 6f 72 46 72 65 65 58 70 9a 01 18 72 61 72 65 53 74 61 74 69 63 42 6f 6f 73 74 65 72 46 6f 72 47 6f 6c 64 a0 01 13 a8 01 02 b0 01 ff ff ff ff ff ff ff ff ff 01 0a a3 02 08 c7 d8 bf 81 01 12 0f 11 2d 6c 00 4d 00 cc 00 00 
00 57 00 28 00 00 1a 08 57 68 69 74 65 68 6f 65 20 01 28 01 38 dd d7 fe f6 03 42 05 49 44 4f 42 52 48 d5 b0 05 50 81 80 bc 81 01 68 f8 c1 0a 8a 01 cd 01 08 fe 93 4e 12 c6 01 08 fe 93 4e 12 59 68 74 74 70 73 3a 2f 2f 73 74 75 66 66 69 63 6f 6e 73 2e 77 67 63 64 6e 2e 63 6f 2f 47 66 78 2f 61 76 61 74 61 72 5f 70 72 6f 67 72 65 73 73 69 76 65 5f 62 70 5f 33 30 5f 70 61 69 64 5f 36 2f 32 32 31 32 32 32 5f 30 35 32 36 33 37 5f 33 37 32 33 36 33 2e 77 65 62 70 1a 5a 68 74 74 70 73 3a 2f 2f 73 74 75 66 66 69 63 6f 6e 73 2e 77 67 63 64 6e 2e 63 6f 2f 47 66 78 32 2f 61 76 61 74 61 72 5f 70 72 6f 67 72 65 73 73 
69 76 65 5f 62 70 5f 33 30 5f 70 61 69 64 5f 36 2f 32 32 31 32 32 32 5f 30 35 32 36 34 30 5f 39 35 30 34 30 35 2e 77 65 62 70 22 09 6c 65 67 65 6e 64 61 72 79 95 01 00 00 80 3f b0 01 ff ff ff ff ff ff ff ff ff 01 0a 90 02 08 c8 d8 bf 81 01 12 0f 11 41 a0 00 67 00 cc 00 00 00 85 00 5c 00 00 1a 0b 66 6f 63 75 73 7a 78 32 30 30 30 20 02 28 01 38 88 c7 da ef 03 68 f8 f5 0a 8a 01 c8 01 08 fe c7 4a 12 c1 01 08 fe c7 4a 12 59 68 74 74 70 73 3a 2f 2f 73 74 75 66 66 69 63 6f 6e 73 2e 77 67 63 64 6e 2e 63 6f 2f 47 66 78 2f 61 76 61 74 61 72 5f 70 72 6f 67 72 65 73 73 69 76 65 5f 62 70 5f 32 39 5f 66 72 65 65 5f 
34 2f 32 32 31 31 32 35 5f 31 30 34 35 32 38 5f 38 36 38 31 36 34 2e 77 65 62 70 1a 5a 68 74 74 70 73 3a 2f 2f 73 74 75 66 66 69 63 6f 6e 73 2e 77 67 63 64 6e 2e 63 6f 2f 47 66 78 32 2f 61 76 61 74 61 72 5f 70 72 6f 67 72 65 73 73 69 76 65 5f 62 70 5f 32 39 5f 66 72 65 65 5f 34 2f 32 32 31 31 32 35 5f 31 30 34 35 33 32 5f 35 36 34 35 32 35 2e 77 65 62 70 22 04 72 61 72 65 95 01 00 00 80 3f b0 01 ff ff ff ff ff ff ff ff ff 01 0a ca 02 08 c9 d8 bf 81 01 12 0f 01 ec b4 00 72 00 cc 00 0b 00 98 00 8a 00 00 1a 0f 54 6f 72 72 65 73 6c 61 6c 69 74 6f 35 38 34 20 02 28 01 38 d4 97 e3 ea 03 42 05 2d 57 4f 48 2d 
48 fb e0 02 50 a9 c7 c0 81 01 8a 01 cb 01 08 fe af 48 12 c4 01 08 fe af 48 12 58 68 74 74 70 73 3a 2f 2f 73 74 75 66 66 69 63 6f 6e 73 2e 77 67 63 64 6e 2e 63 6f 2f 47 66 78 2f 61 76 61 74 61 72 5f 44 75 6e 65 57 6f 72 6d 5f 6c 65 67 65 6e 64 61 72 79 5f 61 6e 69 6d 2f 32 32 30 39 31 32 5f 31 30 32 39 35 32 5f 32 39 35 34 34 34 2e 77 65 62 70 1a 59 68 74 74 70 73 3a 2f 2f 73 74 75 66 66 69 63 6f 6e 73 2e 77 67 63 64 6e 2e 63 6f 2f 47 66 78 32 2f 61 76 61 74 61 72 5f 44 75 6e 65 57 6f 72 6d 5f 6c 65 67 65 6e 64 61 72 79 5f 61 6e 69 6d 2f 32 32 30 39 31 32 5f 31 30 33 30 30 35 5f 36 30 37 34 33 33 2e 77 
65 62 70 22 09 6c 65 67 65 6e 64 61 72 79 95 01 00 00 80 3f 9a 01 1d 63 6f 6d 6d 6f 6e 53 74 61 74 69 63 42 6f 6f 73 74 65 72 46 6f 72 43 72 65 64 69 74 73 a0 01 01 a8 01 01 b0 01 ff ff ff ff ff ff ff ff ff 01 0a 91 03 08 ca d8 bf 81 01 12 0f 81 1e 2e 00 2e 00 cc 00 00 00 2e 00 2c 00 00 1a 10 53 6f 6c 65 64 42 79 50 61 72 65 6e 62 65 72 67 20 01 28 01 38 9b 87 f9 f2 03 42 05 49 44 4f 42 52 48 d5 b0 05 50 81 80 bc 81 01 58 01 68 f8 89 0b 8a 01 cd 01 08 fe 93 4e 12 c6 01 08 fe 93 4e 12 59 68 74 74 70 73 3a 2f 2f 73 74 75 66 66 69 63 6f 6e 73 2e 77 67 63 64 6e 2e 63 6f 2f 47 66 78 2f 61 76 61 74 61 72 5f 
70 72 6f 67 72 65 73 73 69 76 65 5f 62 70 5f 33 30 5f 70 61 69 64 5f 36 2f 32 32 31 32 32 32 5f 30 35 32 36 33 37 5f 33 37 32 33 36 33 2e 77 65 62 70 1a 5a 68 74 74 70 73 3a 2f 2f 73 74 75 66 66 69 63 6f 6e 73 2e 77 67 63 64 6e 2e 63 6f 2f 47 66 78 32 2f 61 76 61 74 61 72 5f 70 72 6f 67 72 65 73 73 69 76 65 5f 62 70 5f 33 30 5f 70 61 69 64 5f 36 2f 32 32 31 32 32 32 5f 30 35 32 36 34 30 5f 39 35 30 34 30 35 2e 77 65 62 70 22 09 6c 65 67 65 6e 64 61 72 79 95 01 00 00 80 3f 9a 01 15 63 6f 6d 6d 6f 6e 42 6f 6f 73 74 65 72 52 65 63 68 61 72 67 65 9a 01 12 63 6f 6d 6d 6f 6e 42 6f 6f 73 74 65 72 46 6f 72 58 
70 9a 01 14 72 61 72 65 42 6f 6f 73 74 65 72 46 6f 72 43 72 65 77 58 70 9a 01 1d 63 6f 6d 6d 6f 6e 53 74 61 74 69 63 42 6f 6f 73 74 65 72 46 6f 72 43 72 65 64 69 74 73 b0 01 ff ff ff ff ff ff ff ff ff 01 0a d5 02 08 cb d8 bf 81 01 12 0f 21 4c ed 03 4f 00 cc 00 00 00 ed 03 f2 03 00 1a 0d 47 61 62 6f 67 61 6d 65 72 5f 4d 65 78 20 02 28 01 38 88 91 88 ea 03 42 05 42 4d 58 31 44 48 f8 77 50 a9 c7 c0 81 01 58 01 8a 01 c2 01 08 fe cd 14 12 bb 01 08 fe cd 14 12 55 68 74 74 70 73 3a 2f 2f 73 74 75 66 66 69 63 6f 6e 73 2e 77 67 63 64 6e 2e 63 6f 2f 47 66 78 2f 61 76 61 74 61 72 5f 70 72 6f 67 72 65 73 73 69 76 
65 5f 57 61 72 72 69 6f 72 5f 36 2f 31 39 31 32 30 34 5f 31 35 30 34 35 36 5f 36 37 34 36 35 33 2e 70 6e 67 1a 56 68 74 74 70 73 3a 2f 2f 73 74 75 66 66 69 63 6f 6e 73 2e 77 67 63 64 6e 2e 63 6f 2f 47 66 78 32 2f 61 76 61 74 61 72 5f 70 72 6f 67 72 65 73 73 69 76 65 5f 57 61 72 72 69 6f 72 5f 36 2f 31 39 31 32 30 34 5f 31 35 30 35 30 35 5f 39 39 39 35 39 32 2e 70 6e 67 22 06 75 6e 69 71 75 65 95 01 00 00 80 3f 9a 01 14 72 61 72 65 42 6f 6f 73 74 65 72 46 6f 72 46 72 65 65 58 70 9a 01 1b 72 61 72 65 53 74 61 74 69 63 42 6f 6f 73 74 65 72 46 6f 72 43 72 65 64 69 74 73 a0 01 01 a8 01 01 b0 01 ff ff ff ff 
ff ff ff ff ff 01 0a 8a 02 08 cc d8 bf 81 01 12 0f 61 13 24 00 0d 00 cc 00 00 00 20 00 20 00 00 1a 0a 76 69 72 75 73 5f 31 34 58 4c 20 01 28 01 38 ac 9b ef f1 03 42 03 4b 32 34 48 dd bf 03 68 f8 d3 1f 8a 01 c3 01 08 fe ef 0e 12 bc 01 08 fe ef 0e 12 54 68 74 74 70 73 3a 2f 2f 73 74 75 66 66 69 63 6f 6e 73 2e 77 67 63 64 6e 2e 63 6f 2f 47 66 78 2f 61 76 61 74 61 72 5f 67 6f 74 5f 64 72 61 67 6f 6e 5f 6c 65 67 65 6e 64 61 72 79 2f 31 39 30 34 30 33 5f 31 30 35 35 32 30 5f 32 30 37 31 39 38 2e 70 6e 67 1a 55 68 74 74 70 73 3a 2f 2f 73 74 75 66 66 69 63 6f 6e 73 2e 77 67 63 64 6e 2e 63 6f 2f 47 66 78 32 2f 
61 76 61 74 61 72 5f 67 6f 74 5f 64 72 61 67 6f 6e 5f 6c 65 67 65 6e 64 61 72 79 2f 31 39 30 34 30 33 5f 31 30 35 35 32 32 5f 32 32 35 32 34 30 2e 70 6e 67 22 09 6c 65 67 65 6e 64 61 72 79 95 01 00 00 80 3f b0 01 04 0a ae 02 08 cd d8 bf 81 01 12 0f 21 5b ff 03 60 00 cd 00 00 00 fe 03 06 04 00 1a 0e 43 68 61 70 69 74 6f 5f 47 75 7a 6d 61 6e 20 02 28 01 38 ed a5 98 ea 03 42 05 2d 45 58 45 2d 48 a5 e1 03 68 f8 9b 06 8a 01 aa 01 08 fe b9 15 12 a3 01 08 fe b9 15 12 4a 68 74 74 70 73 3a 2f 2f 73 74 75 66 66 69 63 6f 6e 73 2e 77 67 63 64 6e 2e 63 6f 2f 47 66 78 2f 61 76 61 74 61 72 5f 6c 75 6e 61 72 5f 72 61 
72 65 2f 32 30 30 32 31 37 5f 30 37 34 37 34 38 5f 30 37 33 34 39 34 2e 70 6e 67 1a 4b 68 74 74 70 73 3a 2f 2f 73 74 75 66 66 69 63 6f 6e 73 2e 77 67 63 64 6e 2e 63 6f 2f 47 66 78 32 2f 61 76 61 74 61 72 5f 6c 75 6e 61 72 5f 72 61 72 65 2f 32 30 30 32 31 37 5f 30 37 34 37 35 31 5f 36 37 30 33 39 39 2e 70 6e 67 22 04 72 61 72 65 95 01 00 00 80 3f 9a 01 12 75 6e 69 71 75 65 42 6f 6f 73 74 65 72 46 6f 72 58 70 9a 01 16 75 6e 69 71 75 65 42 6f 6f 73 74 65 72 46 6f 72 43 72 65 77 58 70 b0 01 ff ff ff ff ff ff ff ff ff 01 0a 9d 02 08 ce d8 bf 81 01 12 0f 01 50 ef 03 03 01 cc 00 00 00 ef 03 f4 03 00 1a 08 62 
75 79 73 74 61 66 66 20 02 28 01 38 8e 96 85 e5 03 42 03 4d 33 36 48 ed 90 03 8a 01 b4 01 08 fe 81 13 12 ad 01 08 fe 81 13 12 4f 68 74 74 70 73 3a 2f 2f 73 74 75 66 66 69 63 6f 6e 73 2e 77 67 63 64 6e 2e 63 6f 2f 47 66 78 2f 61 76 61 74 61 72 5f 73 6d 69 6c 65 79 5f 63 72 79 5f 72 61 72 65 2f 31 39 31 30 32 34 5f 30 36 35 36 34 35 5f 30 33 33 36 34 37 2e 70 6e 67 1a 50 68 74 74 70 73 3a 2f 2f 73 74 75 66 66 69 63 6f 6e 73 2e 77 67 63 64 6e 2e 63 6f 2f 47 66 78 32 2f 61 76 61 74 61 72 5f 73 6d 69 6c 65 79 5f 63 72 79 5f 72 61 72 65 2f 31 39 31 30 32 34 5f 30 36 35 36 34 38 5f 33 32 31 34 37 35 2e 70 6e 
67 22 04 72 61 72 65 95 01 00 00 80 3f 9a 01 16 63 6f 6d 6d 6f 6e 42 6f 6f 73 74 65 72 46 6f 72 43 72 65 77 58 70 a0 01 0a a8 01 02 b0 01 ff ff ff ff ff ff ff ff ff 01 0a b3 02 08 cf d8 bf 81 01 12 0f 41 41 0e 00 3a 00 cd 00 00 00 09 00 0a 00 00 1a 0b 70 75 6b 69 6e 62 75 7a 7a 72 64 20 02 28 01 38 ec e9 eb f5 03 68 f8 b9 04 8a 01 c0 01 08 fe f3 3c 12 b9 01 08 fe f3 3c 12 55 68 74 74 70 73 3a 2f 2f 73 74 75 66 66 69 63 6f 6e 73 2e 77 67 63 64 6e 2e 63 6f 2f 47 66 78 2f 61 76 61 74 61 72 5f 52 69 6f 43 61 72 6e 69 76 61 6c 5f 72 61 72 65 5f 31 34 64 2f 32 32 30 32 31 38 5f 31 35 30 36 30 34 5f 36 35 30 
37 30 32 2e 77 65 62 70 1a 56 68 74 74 70 73 3a 2f 2f 73 74 75 66 66 69 63 6f 6e 73 2e 77 67 63 64 6e 2e 63 6f 2f 47 66 78 32 2f 61 76 61 74 61 72 5f 52 69 6f 43 61 72 6e 69 76 61 6c 5f 72 61 72 65 5f 31 34 64 2f 32 32 30 32 31 38 5f 31 35 30 36 30 30 5f 33 31 33 37 38 37 2e 77 65 62 70 22 04 72 61 72 65 95 01 00 00 80 3f 9a 01 12 63 6f 6d 6d 6f 6e 42 6f 6f 73 74 65 72 46 6f 72 58 70 9a 01 16 63 6f 6d 6d 6f 6e 42 6f 6f 73 74 65 72 46 6f 72 43 72 65 77 58 70 a0 01 13 a8 01 02 b0 01 02

Would be good addition to Wireshark's protobuff dissector

Before I go in this direction with a PR, I was curious if you've already barked up this tree? The current dissector in Wireshark requires you to write the proto files before it can be dissected, and I feel this project would compliment it nicely for an "auto decode" option.

handle embedded messages ?

How do you handle Exception: Unknown message type startgroup ?
Is there any code to extract split binary to messages ?

bool type not supported

bool type is not recognized and throws the following exception:

Exception: Found wire type 0 (varint), wanted type 2 (bool)

JSON support

I try to update code to put JSON output support but there are many errors.
Can you give me some guidance on where I should update the code?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.