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