Wireshark ディセクタをテストするには、これが役立つことがわかりました。
- ディセクタが不正な形式のパケットを含めて分析する必要がある一連のパケットを定義します
- パケットを 16 進ダンプとして実装します
- 期待される出力を定義する
- パケットダンプごとに
- でpcapファイルを生成します
text2pcap
- ディセクタを実行します
tshark
- tshark の PDML 出力からペイロードを抽出します。
- XML 出力を予想される XML 出力と比較する
これは、XML 出力をフィルタリングすることで改善できます。これは、PDML にパケット バイトも含まれているためです。これは、ペイロードが大きい場合や複雑な場合に厄介な問題になる可能性があります。
推奨されるwireshark実行可能ファイルへの引数は次のとおりです。
text2pcap -T 1024,9876 foo.txt foo.pcap
tshark -T pdml -r "foo.pcap"
ディセクタ出力を抽出するには、.NET CLR クラス XmlNode で XPATH 式を使用すると便利です。これは、たとえば次のように行うことができます。
XmlNode output = tsharkOutput.SelectSingleNode("packet/proto[@name='foo']");
XmlNodeList refList = referenceDocument.SelectNodes("proto[@name='foo']");