2010-11-25 6 views
0

저는 네트워크 프로그래밍에 익숙하지 않습니다 .i 패킷 킁킁에 관한 도움을 원합니다 .i ip ipsec 및 pptp 패킷을 스니핑하고 싶습니다. 그들은 같은 방법 (코드)을 사용하여 냄새를 맡고 있습니까? 아니면 다른 방법으로 냄새를 맡고 있습니까? 나는 리눅스를 사용하고 있으며 언어는 C++이다. 감사합니다.패킷 스니핑

+3

직접 패킷 스니핑 소프트웨어를 사용하지 마십시오. – zneak

답변

0

나만의 스니퍼 나 분석기를 쓰는 것에 대한 조언은 자신의 프로토콜 분석기를 작성하거나 특별한 "실시간"요구 사항이 없다면 조언 할 것입니다.

tcpdump를 사용하여 관심있는 트래픽을 첫 번째 단계로 캡처하는 것이 좋습니다. 예 :

tcpdump -i eth0 -w output.pcap -s0 -n 'net 192.168.1.0/24' 

는 그 다음 해부 tshark를 서브 프로세스의 차기 분석기 유틸리티를 쓰기 : 로컬 네트워크 192.168.1.0/24를 가지고 포트는 다음과 같은 시도 할 수 의도 캡처 PC에 미러링 정렬 한 가정 관심있는 패킷; 예를 들어 두 IP 주소 192.168.1.1과 192.168.1.10 사이의 pptp 트래픽을 말하십시오. 이 경우, 다음 명령을 호출이 패킷을 해부 것와 C의 추가 처리를 위해 텍스트 파일 ++ 또는 더 나은 파이썬/펄로 자신의 페이로드를 덤프 : 당연히

tshark -r output.pcap -R "pptp and (ip.src_host == 192.168.1.1 ip.dst_host == 192.168.1.10)" -T text 

, 당신은 필요한만큼 tshark를 실행할 수 있습니다 이전에 작성한 동일한 단일 output.pcap에서 의도 한 분석을 위해. 매번 당신의 필요에 따라 다른 필터를 통과합니다.

이 기술 또는 그 변형은 표준 프로토콜의 세부 사항으로 넘어 가지 않고 코드의 극히 일부에 들어가기를 원하는 곳으로 90 %가 이동해야합니다. tshark로 구현 된 디 컴파일러는 많은 테스트와 디버깅을 거쳐 상당한 시간과 두통을 덜어줍니다.