2010-02-16 5 views
0

Arp 패킷을 구문 분석하는 중 작업 중이 좋은 문제가 발견되었습니다.WinPCap 데이터 잘림 받기

Arp 패킷을받을 때 대상의 IP 주소를 구문 분석하고있었습니다.

나는 내 헥스에서 c0 a8을 가지고 있지만 그 후에는 끝난다. 데이터가 누락되었습니다. Wireshark에서 데이터를 볼 수 있지만 이 아니며 Win32ap을 통해 데이터를 가져 오는이 아닙니다.

나는 아직이 문제와 관련이 없습니다. 어떤 아이디어 그래서? 지금까지 아무 메모리 액세스 오류. 아마 운이 좋을거야. : x

EDIT : 내 패킷 처리 패킷은 pktdump_ex 예제입니다. 여기

그 후

while((res = pcap_next_ex(fp, &header, &pkt_data)) >= 0) 

이 실행되는 동안 라인을되면, snalen 2B이다.

+0

몇 가지 코드를 보여주십시오. 캡처 할 때 얼마나 큰 '스냅 샷'을 설정 했습니까? 그리고 프로그램에 버그가 없다고 확신합니까? – nos

답변

2

주석에서 언급했듯이 이것은 잘못된 스냅 냅 구성과 같은 냄새를 풍깁니다. winpcap api docs pcap_open() apidoc을 보면

snaplen : 보유해야하는 패킷의 길이입니다. 필터에 의해 수신 된 각 패킷에 대해 첫 번째 'snaplen'바이트 만 버퍼에 저장되고 사용자 응용 프로그램으로 전달됩니다. 예를 들어, snaplen이 100이면 각 패킷의 처음 100 바이트 만 저장됩니다.

pcap_open의 두 번째 매개 변수에 대한 설명입니다. 더 자세한 코드 스 니펫을 제공하지 않는 한, 이것이 우리가 얻을 수있는 대답과 가장 가까운 것입니다.

+0

나는이 비교적 짧은 arp 짧은 것들이 매번 성공적으로 성공한 것보다 훨씬 긴 패킷을 얻을 수있다. – bobber205