如何使用BPF

时间:2017-12-02 09:38:17

标签: filtering wireshark pcap tcpdump

我正在尝试使用bpf语法过滤pcap文件。我需要它只返回来自HTTP的GET请求,该请求包含GET请求中的某个单词,是否可以执行此操作?我设法从HTTP获取GET请求,但我找不到如何根据数据包的数据进行过滤。

1 个答案:

答案 0 :(得分:0)

除非Wireshark或TCPDump没有针对您正在使用的某些奇怪协议的协议解析器,否则您被要求做的是棘手,困难和不切实际。

仅使用BPF获取GET请求的方法如下:

 dst port 80 and tcp[(tcp[12]>>2):4]=0x47455420

必须以这种方式完成的原因是您必须考虑更改TCP选项的可能性,并因此更改数据偏移开始位置的位置。这将确定数据的开始位置,并检查字符串“GET”的前四个字节。

您可能还会注意到我在字节12中使用TCP数据偏移值的快捷方式。最好这样做:

 (tcp[12]>>4)*4

或者这个:

 (tcp[12]&0xf0 >> 2)

这将解释保留的低位半字节中的任何位被启用。