Bash

使用 UDP 發送多個十六進制數據包

  • October 4, 2020

我正在嘗試對連接到 Android 應用程序的 wifi 網路攝像頭進行逆向工程。我嗅探了一下流量,發現當應用程序發送了一系列 8 個 UDP 數據包時,事務就啟動了,此時攝像頭會將影片作為一系列 UDP 數據包流式傳輸到手機。我想將 8 個啟動數據包從我的電腦發送到相機,看看我是否可以讓相機流式傳輸到我的電腦。看起來 netcat 可能很有用,但數據不是我發現的 netcat 範例中的好 ASCII 字元串。數據實際上是

4a:48:43:4d:44:d0:02
4a:48:43:4d:44:d0:02
4a:48:43:4d:44:d0:02
4a:48:43:4d:44:20:00:00:00:00:00
4a:48:43:4d:44:20:00:00:00:00:00
4a:48:43:4d:44:10:00
4a:48:43:4d:44:d0:01
4a:48:43:4d:44:d0:01

如何在不到 0.2 秒的時間內將帶有這些數據的 UDP 數據包發送到特定的 IP 地址和埠,最好使用簡單的 CL 工具?

這個任務不太適合通過命令行實用程序來完成——如果可以的話,你最好用 Perl 或 Python 之類的東西來完成,因為那裡的網路 API 要豐富得多。

話雖這麼說……你當然可以使用netcat來發送你的數據包,將十六進制數據傳輸到類似的東西xxdvim-commonRHEL / CentOS / Fedora上的包的一部分 - 如果你使用的是不同的Linux發行版,則為YMMV…… )。

有一個名為PacketSender的工具(我承認我並沒有真正使用過,但它看起來很有趣),它包括命令行功能來做你想做的事 - 挑戰是我不知道它被打包用於任何 Linux 發行版,因此您要麼必須自己從原始碼建構它,要麼使用作者預先打包的 AppImage 版本(如果您的發行版可以使用它)。

引用自:https://unix.stackexchange.com/questions/612667