如何使用 python 从 pcap 文件中过滤字符串?

How can I filter a string from a pcap file using python?

我有一些大的 pcap 文件(每个大约 100MB),我想从字典文件 (txt) 中过滤掉那些包含字符串的数据包。字典文件的格式如下:

line 1: word1
line 2: word2
line 3: word3
line 4: word4

因此,如果 word1 出现在 pcap 文件中的任何位置(应该在 TCP 负载中?),我想删除该字符串或只是想从 pcap 文件中删除该数据包。 有什么方法可以有效地(足够快)实现这一点?

这是我自己想出来的。对于其他用户,Tshark 可用于在 tcp 流中搜索字符串。如果要搜索字符串并输出源和目标的 ip 地址,以下内容很有用:

tshark -r <capture-file> -T fields -e ip.src -e ip.dst -e data |\
 grep `echo -n "<ascii-string>" | xxd -p` |\
 cut -f 1,2

所以,为了实现我在问题中想要的,以下 bash 脚本可能很有用:

value=`cat bad_words.txt`

for i in ${value[@]}; do tshark -r my_test.pcap -T fields -e ip.src -e ip.dst -e data |\
 grep `echo -n $i | xxd -p` |\
 cut -f 1| uniq > $i; echo $i; done