如何使用 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
我有一些大的 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