2014-09-06 2 views
0

저는 C++에 대한 지식과 네트워크 프로그래밍에 대한 지식을 가지고 있습니다. 그러나 스니퍼 (Sniffer)를 시작할 위치는 알지 못합니다. 제 문제는 서버 및 클라이언트. 나는 클라이언트와 동일한 네트워크에 있으며 서버는 멀리 떨어져 있습니다 :). 클라이언트가 보낸 데이터를 어떻게 알아볼 수 있습니까?zeroMQ 또는 boost.asio를 사용하는 C++ 패킷 스니퍼

부스트 라이브러리 또는 zeroMQ 사용 여부는 신경 쓰지 않습니다. 쉽게 이해할 수 있도록하기 위해 내가이 만든 :

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

[패킷 스니퍼] 및 [CLIENT] 와이파이가 연결 같은 네트워크에 있습니다.

+0

[wireshark] (https://www.wireshark.org/)의 문제점은 무엇입니까? –

+0

나는 스스로 프로그래밍하려고한다 : – BLUEDRAGON123

+0

프로그래밍 방식으로 API를 사용할 수도있다. 휠을 다시 태어나지 마십시오. 노력할만한 가치가 없습니다. –

답변

1

클라이언트가 보낸 데이터를 스니핑 할 수 있습니까?

Libpcap (Windows *는 WinPcap)

[PACKET-SNIFFER]와 [CLIENT]는 동일한 네트워크에 wi-fi로 연결되어 있습니다.

그러면 monitor mode으로 캡처해야합니다. Libpcap에는 모니터 모드를 켜기위한 API가 있지만 현재 OS X에서만 잘 작동합니다. 리눅스에서는 아마도 이것을 켜기 위해서 aircrack-ng's airmon-ng script을 써야 할 것이고 * BSD에 다른 것을해야 할 수도있다. WinPcap에는 이러한 API가 없으며 Windows 용 airmon-ng와 동일한 스크립트가 없습니다.

+0

WhatsApp Sniffer는 어떻게 작동 했습니까? – BLUEDRAGON123

0

응용 프로그램은 소켓을 통해 네트워크와 통신합니다. 소켓은 운영 체제에 의해 구현됩니다. 클라이언트와 네트워크간에 어떤 데이터가 흐르는지 파악하고 싶다면, 가장 좋은 시작은 특정 OS의 소켓 문서를 읽고이 점에서 OS가 제공하는 도구를 알아 보는 것입니다. OS가 제공 한 데이터를 사용하여 수행 한 작업은 전적으로 귀하에게 달려 있습니다.