重播 UDP 資料包捕獲

重播 UDP 資料包捕獲

我有一個 UDP 封包捕獲,它從網路 N1 上 IP1 上的連接埠 1 串流到 IP2 上的連接埠 2。我需要在另一個網路 N2 上從 IP3 上的連接埠 3 到 IP4 上的連接埠 4 重播這些封包。

我需要知道要使用什麼軟體來執行此操作,以及如何重播這些資料包,以便我可以在 N2 中再次檢測/捕獲它們。

到目前為止,我已經嘗試使用名為 Colasft Packet Player 的程式嚴格重播這些資料包,但運氣不佳。

答案1

tc預播放https://tcpreplay.appneta.com/)似乎也能夠做你想做的事,也許使用tcprelat 編輯程序,但我沒有親自運行過這個軟體。

來自tcpreplay-編輯 概述:

tcpreplay 這些年來已經有了很大的發展。在 1.x 時代,它只是讀取資料包,然後透過線路發送回來。在 2.x 中,tcpreplay 得到了顯著增強,添加了各種重寫功能,但代價是複雜性、效能和膨脹。現在在 3.x 中,tcpreplay 已經回歸其根源,成為一個精簡的資料包發送機器,編輯功能已轉移到 tcprewrite 和一個將兩者結合在一起的強大的 tcpreplay-edit。

由於 tcpreplay-edit 包含 tcpreplay 和 tcprewrite 的所有功能,請參閱這些 wiki 頁面以了解如何使用 tcpreplay-edit。

答案2

比特扭曲http://bittwist.sourceforge.net)應該能夠做你想做的事。

借助 Bit-Twist,您現在可以將捕獲的流量重新生成到即時網路上!資料包是從 tcpdump 追蹤檔案(.pcap 檔案)產生的。 Bit-Twist 還附帶了一個全面的追蹤檔案編輯器,可讓您更改追蹤檔案的內容。

「追蹤文件編輯器」部分是您在這裡最感興趣的部分。

我認為你需要分兩次進行轉換:一是更改 IP 位址,二是更改 UDP 連接埠號碼。我相信您可以按任一順序執行此操作。

bittwiste -I original.pcap -O changedip.pcap -T ip -s IP1,IP3 -d IP2,IP4
bittwiste -I changedip.pcap -O changedipandport.pcap -T udp -s Port1,Port3 -d Port2,Port4

您需要在其中貼上 IP 位址和連接埠號,例如

bittwiste -I original.pcap -O changedip.pcap -T ip -s 192.168.0.1,10.10.0.3 -d 192.168.0.2,10.10.0.4
bittwiste -I changedip.pcap -O changedipandport.pcap -T udp -s 12345,24680 -d 80,8080

如果您的原始擷取檔案僅包含原始電腦的 IP 和連接埠號,您可以透過在編輯命令中不提及舊的 IP 和連接埠號碼來簡化此操作,例如

bittwiste -I original.pcap -O changedip.pcap -T ip -s 10.10.0.3 -d 10.10.0.4
bittwiste -I changedip.pcap -O changedipandport.pcap -T udp -s 24680 -d 8080

產生從 10.10.0.3:24680 到 10.10.0.4:8080 的資料包。

從網路 N2 中的電腦上,您應該能夠changedipandport.pcap使用以下命令播放該文件Colaso​​ft 資料包播放器http://www.colaso​​ft.com/packet_player) 或命令列比特扭曲玩家,例如

bittwist -i 1 changedipandport.pcap

其中此處的「1」是設備 1 bittwist -d

BitTwist 播放器還有其他一些漂亮的選項,而 Colasft Packet Player 則無法做到,特別是透過更改乘法器發送的資料包的速度(例如 5 倍原始速度或 0.1 倍原始速度)。

我已經成功地測試了這個方法Wiresharkhttp://www.wireshark.org)捕獲從 i-device 上的 TouchOSC 發送到我的筆記型電腦(透過 WiFi)連接埠 8000 的 OSC 資料(UDP 資料包),使用比特維斯特(編輯)將目標 IP 位址變更為我的有線乙太網路介面卡位址,並將 UDP 連接埠變更為 8001,然後使用位扭曲(玩家)到純數據http://puredata.info) 修補監聽埠 8001。

相關內容