python-使用Scapy解析数据包字节

我想使用Scapy解析数据包有效负载的前两个字节.做到这一点的最佳方法是什么?是否需要偏移量计算?

首先,需要解析有效负载,尽管以下内容将解析整个PCAP文件,是否有更有效的方法来获取每个有效负载的前两个字节? link

>>> fp = open("payloads.dat","wb")
>>> def handler(packet):
...     fp.write(str(packet.payload.payload.payload))
...
>>> sniff(offline="capture1.dump",prn=handler,filter="tcp or udp")

解决方法:

我懂了.从这里看来,这非常有效.

您可以尝试fp.write(str(packet.payload.payload.payload)[:2])仅获取前2个字节.

您也可以执行fp.write(str(packet [TCP] .payload)[:2])跳过所有这些有效负载.

或者,您可以定义一个SSL Packet对象,将其绑定到适当的端口,然后打印SSL层.

class SSL(Packet):
  name = "SSL" fields_desc = [ ShortField("firstBytes", None) ]

bind_layers( TCP, SSL, sport=443 )
bind_layers( TCP, SSL, dport=443 )

def handler(packet):
... fp.write(str(packet[SSL]))

…但是这似乎太过分了.

上一篇:python-使用Scapy和NetFilter队列接收自定义协议数据包


下一篇:python-Scapy-嗅探两个接口中的三个