我用tcpdump收集了一些大的pcap(数据包捕获)文件。我想过滤掉包含特定字符串的包。我希望我的输出仍然是pcap格式。我发现了几种只显示与pcap文件中的regex匹配的包的方法,但我需要的是过滤这些文件,而不是过滤掉数据包的显示(例如stdout)。输出需要是删除了匹配数据包的pcap文件。在
我怀疑DPKT(Python模块)可能会有帮助,但如果可能的话,我更希望使用现有的(C/C++)工具来做这件事。我将接受代码作为答案(也许一个好的dpkt例子和基准测试可以说服我也这么做;-)。在提前谢谢!在
回答:
根据尼姆的回答,通过Wireshark/tshark可以做到这一点。为了供其他人参考,下面是一个示例命令行,我在其中检查udp数据包中的字符串匹配(此示例可以构建为tcp或特定协议字段搜索):
tshark -r infile -R 'not udp matches "my_search_string"' -w outfile
再次感谢!在
这个website有一个很好的例子,说明了如何用C读取pcap文件,一个快速的google搜索将揭示如何重新编写该文件。在
或者,AFAIK Wireshark可能已经允许您这样做了,即打开文件,应用过滤器并保存文件(快速浏览Wireshark-可以发现它确实提供了这一功能)。在
相关问题 更多 >
编程相关推荐