6

そのデータを書き込むために使用される型についての知識がなくても、PB 形式で書き込まれたデータをダンプ (表示) することは可能ですか?

https://stackoverflow.com/a/10253515/883738を見つけました

簡単に言うと、ネットワーク上で、protobuf は の 3 タプルとしてエンコードされます。キーは、.proto スキーマでフィールドに割り当てられたフィールド番号です。タイプは のいずれかです。これには、3 タプルの値をデコードするのに十分な情報が含まれています。つまり、値の長さがわかります。

私の最終的な目標は、Fiddler2 の拡張機能を作成して、PB 形式で送受信されているものを確認することです。

4

2 に答える 2

6

これには、iirc というwireshark ツールがあります。

ここでの問題は、スキーマがわからない場合、protobuf 形式があいまいになることです。

  • 固定 32 は、浮動小数点数または符号付きまたは符号なし整数 (32 ビット) の可能性があります。
  • 固定 64 は double または符号付きまたは符号なし整数 (64 ビット) の可能性があります。
  • varint は、符号付きまたは符号なし整数、ジグザグ整数、またはブール値である可能性があります
  • 文字列は、utf-8 文字列、プリミティブのパック配列、サブメッセージ、または raw バイトである可能性があります

実際、唯一の明確なトークンは開始/終了グループであり、それらは半推奨されていません!

つまり、実行可能ですが、同じデータの複数の解釈を提示する必要がある場合があります

フィールド番号のみをリストすることもできます。バイナリ形式のメンバー名はありません

于 2012-09-08T16:14:45.000 に答える
2

ここに Fiddler PB 実装があります (使用していません): https://github.com/SecurityInnovation/ProtoMiddler

于 2014-09-18T01:03:04.930 に答える