Ask Your Question
0

decode protobuf within a protobuf in lua plugin

asked 2021-02-01 09:48:31 +0000

ranjeetsih gravatar image

updated 2021-02-11 15:18:31 +0000

I have a http2 packet with grpc+protobuf content.

The protobuf inside grpc has a byte array field which itself is a protobuf.

I have written a lua post-dissector which find offset and length of this byte array and calls protobuf dissector on it as follows:

        pinfo.private["pb_msg_type"] = "message," .. probmsgtype
        Dissector.get("protobuf"):call(tvb, pinfo, subtree)

i am seeing following error: Protocol Buffers: pbuf.pbufmsgtype [Packet size limited during capture: ProtoBuf truncated]

I verified that length of buffer and content is alright.

i doubt some field in http2 header messing it up.

Any ideas?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2021-03-13 10:48:51 +0000

ranjeetsih gravatar image

updated 2021-03-13 10:50:14 +0000

if protbuf inside protobuf is stored as byte then following will work.

local pbuf_dissector_table = DissectorTable.get("protobuf_field")
pbuf_dissector_table:add(<fullpathofbyteprotobuffield>,newprotodissector)

then in the new chained dissector do following:

pinfo.private["pb_msg_type"] = "message," .. <actulatypeofnestedprotobuf> 
Dissector.get("protobuf"):call(tvb, pinfo, subtree)
edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2021-02-01 09:48:31 +0000

Seen: 765 times

Last updated: Mar 13 '21