2014-09-06 96 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

应用程序通过套接字与网络进行通信。套接字由操作系统实现。如果您想嗅探您的客户端和网络之间的数据流,最好的办法是读取特定操作系统的套接字文档,并了解操作系统在这方面为您提供的工具。无论你做什么,操作系统提供给你的数据完全取决于你。