2012-03-01 3 views
0

tcpdump로 수집 한 큰 pcap (패킷 캡처) 파일이 있습니다. 특정 문자열이 들어있는 패킷을 걸러 내고 싶습니다. 내 출력을 여전히 pcap 형식으로하고 싶습니다. pcap 파일에서 정규 표현식과 일치하는 패킷 만 표시하는 여러 가지 방법을 찾았지만 패킷의 표시 (예 : stdout)를 필터링하는 대신 이러한 파일을 필터링하는 것이 필요합니다. 결과물은 일치하는 패킷이 제거 된 파일을 pcap해야합니다.콘텐츠 정규 표현식에 따라 pcap (예 : tcpdump) 파일을 필터링하는 방법은 무엇입니까?

필자는 dpkt (python module)가 도움이 될 것으로 생각하지만 가능한 경우 기존 (C/C++) 도구를 사용하여이 작업을 수행하려고합니다. 코드를 대답으로 받아 들일 것입니다 (아마도 벤치 마크가있는 좋은 dpkt 예제는 나를 그렇게 확신시킬 것입니다 ;-)).

미리 감사드립니다.

답변 :

당 님의 대답, 그것은 와이어 샤크/tshark를 통해이 작업을 수행 할 수 있습니다. 다른 사람의 참고로, 여기에 내가 UDP 패킷 내에서 문자열 일치를 확인하는 예제 명령 줄이야 (이 예는 TCP 또는 특정 프로토콜 필드 검색을 할에 구축 할 수 있습니다) :

tshark -r infile -R 'not udp matches "my_search_string"' -w outfile 

감사를 다시!

+0

확실히 디스플레이를 필터링 할 수 있다면 stdout을 파일로 리디렉션 할 수 있습니까? –

+0

맞습니다.하지만 제 요구 사항은 출력이 pcap이라는 것입니다. stdout에 인쇄 할 때 패킷의 문자열 표현이 아닙니다. – JJC

답변

2

website은 C로 pcap 파일을 읽는 방법에 대한 아주 좋은 예입니다. 빠른 Google 검색을 통해 파일을 다시 쓸 수있는 방법을 알 수 있습니다.

AFAIK Wireshark를 사용하면 이미 파일을 열고, 필터를 적용하고 파일을 저장할 수 있습니다 (Wireshark를 통해 빠르게 실행 됨 - 실제로이 기능을 제공함).

+0

예! tshark가 이것을합니다. 포인터 주셔서 감사. 커맨드 라인을 더 잘 포맷 할 수 있도록 질문을 업데이트하고 있습니다. – JJC