我想使用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")
答案 0 :(得分:3)
我明白了。从这里看起来非常有效。
您可以尝试fp.write(str(packet.payload.payload.payload)[:2])
获取前2个字节。
您也可以fp.write(str(packet[TCP].payload)[:2])
跳过所有这些有效负载。
或者,您可以定义SSL数据包对象,将其绑定到适当的端口,然后打印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]))
......但这看起来有点矫枉过正。