2014-09-06 94 views
0

我有C++知識和網絡編程知識......但我不知道從哪裏開始使用Sniffer ......我的問題是我製作了一個服務器和一個客戶端。 我和客戶端在同一個網絡,服務器離我們很遠:)。我如何嗅探客戶端發送的數據?使用zeroMQ或boost.asio的C++數據包嗅探器

我不在乎是否使用boost庫或zeroMQ。爲了便於理解我做這個:

[SERVER]<-----MESSAGE-----[Router]<-----MESSAGE-----[CLIENT] 
              | 
              | 
              V 
            [PACKET-SNIFFER] 

[包嗅探器]和[客戶端]是由Wi-Fi連線同一個網絡。

+0

[wireshark](https://www.wireshark.org/)有什麼問題? – 2014-09-06 10:53:57

+0

我想用我自己編程:) – BLUEDRAGON123 2014-09-06 10:54:39

+0

您也可以以編程方式使用API​​。不要重新發明輪子,這是不值得的努力。 – 2014-09-06 10:56:16

回答

1

如何嗅探客戶端發送的數據?

Libpcap on UN * X,WinPcap on Windows。

[PACKET-SNIFFER]和[CLIENT]位於同一個網絡中,通過Wi-Fi連接。

然後你必須在monitor mode中捕獲。 Libpcap具有啓用監視器模式的API,但它們目前僅在OS X上運行良好;在Linux上,您可能必須使用aircrack-ng's airmon-ng script才能打開它,並且您可能必須在* BSD上執行其他操作。 WinPcap沒有這些API,並且沒有與Windows的airmon-ng等效的腳本。

+0

您認爲... WhatsApp Sniffer是如何工作的? – BLUEDRAGON123 2014-09-06 11:25:41

0

應用程序通過套接字與網絡進行通信。套接字由操作系統實現。如果您想嗅探您的客戶端和網絡之間的數據流,最好的辦法是讀取特定操作系統的套接字文檔,並瞭解操作系統在這方面爲您提供的工具。無論你做什麼,操作系統提供給你的數據完全取決於你。