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