har*_*per 11 unit-testing wireshark wireshark-dissector
当您为Wireshark编写解剖器时,您如何测试它?在UI中寻找可视输出对于一个非平凡的协议是不够的.
解剖器的单元测试是否有好的方法?
编辑:
协议帧的结构是动态的.解剖器必须以某种方式解释内容.
例如,如果第五个字段是1,则字节数组作为第六个字段.如果它是两个你有一个双数组,如果它是三个你必须添加一个零终止字符串.
这通常不会发生在日常工作中.这就是为什么你需要合成捕获数据,即使是"不可能"的内容.
为了测试Wireshark解剖器,我发现这很有用:
text2pcap
tshark
这可以通过过滤XML输出来改进,因为PDML还包括分组字节,如果有效载荷很大或/和复杂则可能令人讨厌.
wireshark可执行文件的建议参数是
text2pcap -T 1024,9876 foo.txt foo.pcap
tshark -T pdml -r "foo.pcap"
Run Code Online (Sandbox Code Playgroud)
要提取解剖器输出,使用带有.NET CLR类XmlNode的XPATH表达式很有用.这可以通过这种方式完成:
XmlNode output = tsharkOutput.SelectSingleNode("packet/proto[@name='foo']");
XmlNodeList refList = referenceDocument.SelectNodes("proto[@name='foo']");
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2898 次 |
最近记录: |