У меня есть знания в C++ и какие-то знания в сетевом программировании... но я понятия не имею, с чего начать Sniffer... Моя проблема в том, что я сделал сервер и клиент. Я в той же сети, что и клиент, и сервер находится далеко от нас :). Как я могу нюхать данные, отправленные клиентом?
Мне все равно, использовать ли библиотеку boost или zeroMQ. Чтобы было легче понять, я сделал это:
[SERVER]<-----MESSAGE-----[Router]<-----MESSAGE-----[CLIENT]
|
|
V
[PACKET-SNIFFER]
[PACKET-SNIFFER] и [CLIENT] находятся в одной сети, подключенной Wi-Fi.
Как я могу нюхать данные, отправленные клиентом?
Libpcap на UN * X, WinPcap на Windows.
[PACKET-SNIFFER] и [CLIENT] находятся в одной сети, подключенной Wi-Fi.
Затем вам нужно будет захватить в режиме монитора. Libpcap имеет API, чтобы включить режим мониторинга, но в настоящее время они работают только в OS X; на Linux вам, вероятно, придется использовать aircrack-ng airmon-ng script, чтобы включить его, и вам, возможно, придется сделать что-то еще на * BSD. У WinPcap нет этих API, и нет сценария, эквивалентного airmon-ng для Windows.
Приложения взаимодействуют с сетью через сокеты. Сокеты реализуются операционными системами. Если вы хотите понюхать, какие данные передаются между вашим клиентом и сетью, лучшим началом было бы прочитать документацию к сокету вашей конкретной ОС и узнать, какие инструменты предлагает вам ОС в этом отношении. Что бы вы ни делали, с данными, предоставленными вам ОС, полностью зависит от вас.