Python Scapy中SMB/浏览器数据包的不可读编码
我试图用scapy(python)解析一个pcap文件,并在TCP上面的层获取原始数据。 在wireshark上,所有图层均正确显示: 但在斯卡皮,我看到的只是一个原始层。。。 我在想也许它没有很好地解析数据包? 可能模块化的NetBIOS没有加载?或者我没有正确导入模块? (我试着: 导入scapy.all、导入scapy、导入scapy.layers.smb) 如何使scapy正确加载数据包的层Python Scapy中SMB/浏览器数据包的不可读编码,python,packet,scapy,smb,netbios,Python,Packet,Scapy,Smb,Netbios,我试图用scapy(python)解析一个pcap文件,并在TCP上面的层获取原始数据。 在wireshark上,所有图层均正确显示: 但在斯卡皮,我看到的只是一个原始层。。。 我在想也许它没有很好地解析数据包? 可能模块化的NetBIOS没有加载?或者我没有正确导入模块? (我试着: 导入scapy.all、导入scapy、导入scapy.layers.smb) 如何使scapy正确加载数据包的层 谢谢 如果有人有类似的问题… 你需要像这样的东西 数据包[TCP]。将有效负载解码为(NBT
谢谢 如果有人有类似的问题… 你需要像这样的东西
数据包[TCP]。将有效负载解码为(NBT会话)
然后您将通过scapy获得解码层:
packet[TCP].show()
[ TCP ]
sport = microsoft_ds
此外,您还可以在此之后尝试解码具有不同类别的数据包:
packet.decode_payload_as(SMBNegociate Protocol Request Header)
你能给我们看看你的代码和可能的数据包吗?嘿!我刚刚嗅到来自我家庭网络的一些流量,python解释器中的代码只是用pcap文件创建了一个PcapReader,并显示了它的第一个数据包…@ToMeRh您找到了解决问题的方法吗?更好的答案是自己将您使用的TCP端口绑定到SMB数据包。默认情况下,Scapy不会注册所有可能的端口。请参见
bind_layers
@Cukic0d您的意思是这样的吗bind_layers(TCP,smb,sport=445)bind_layers(TCP,smb,dport=445)
I获取并出错`AttributeError:module'scapy.layers.smb'没有属性'\u重载字段'`它不是“smb”,而是一个真正的数据包。由于SMB上层是netbios,请查看scapy源代码中的scapy/layers/netbios.py文件。您只需为自己的协议模拟底部的绑定
packet.decode_payload_as(SMBNegociate Protocol Request Header)