2016-10-11 22 views
0

私はwinpcapを使ってネットワークトラフィックを捕捉していますが、このトラフィックは主にシリアル化されたプロトコルバッファー交換で構成されていることがわかります。システムが送信する可能性のあるすべてのタイプのメッセージを知っている場合、どのようにトラフィックのメッセージを検出できますか?winpcap API経由でprotobufメッセージを読む

答えて

0

プロトコルバッファは自己記述型ではないため、生のバイトストリームを読み込むと、メッセージが終了し、別のメッセージが開始されるときを簡単に判断する方法がありません。ただし、ワイヤフォーマットをよく理解していれば、少しの努力でデータの一部を回復することができます。

プロトコルバッファwire formatは基本的に一連のキーと値のペアで構成されています。各キーは、フィールド番号とワイヤタイプ(まとめてタグ)を表し、その値はそのフィールド番号に関連付けられた実際のデータです。あなたが探しているメッセージを知っているなら、私はあなたのメッセージ定義の型とフィールド番号に基づいて見たいタグを検索することから始めます。タグを計算してvarintとしてフォーマットする方法を理解するには、上のリンクのドキュメントを読んで、その未処理のvarintバイトを検索する必要があります。タグのようなものが見つかったら、そこからメッセージを解析して、メッセージがどこで終わるかを知るようにしなければなりません。

関連する問題