我想使用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]))
…但是这似乎太过分了.