0
我试图构建一个脚本来测试自己开发的网络协议。因此我使用scapy发送请求。似乎一切正常,但在我的代码中指定的UDP源端口似乎在发送过程中发生了变化。 Wireshark中的源端口与我指定的端口不同。我也尝试使用tcpdump捕获数据包,但tcpdump也显示我错误的端口。 我发送之前检查了hexdump,它似乎也是正确的。 任何想法是什么问题以及我如何解决它?scapy:发送后UDP源端口发生更改
for x in arr:
cds = TestProtocol(HopCount = 0xe, Length = 0x4, Priority = 0x1, ServiceID = 0x3,
ReceiverAddrLen = 0x1, UniqueID1 = 0x1,
UniqueID2 = 0x1, SenderAddress = 0x1b4e,
PacketType = 0x02c2, data1 = 0x0004,
data2 = 0xe6a7, data3 = 0x0)
ip = IP()
ip.dst = destAddr
ip.src = srcAddr
udp = UDP()
udp.sport = 1743 #the port which changes
udp.dport = x
pack = ip/udp/cds
send(pack, verbose = True)
为什么我在这里使用Scapy的原因是,与Scapy的,你可以很容易地操纵数据包并将其发送到特定的主办。这对渗透测试非常有用。我的代码也适用于wireshark。唯一的问题是源端口,我必须设置它发送正确的请求。 – braheem38
你想以什么方式改变数据包?改变一些字节?为什么不可能使用“套接字”?你可以接收包,解码,修改,编码并发回 –
我现在已经将scapy与Python的套接字实现结合起来了,它可以工作。谢谢! – braheem38