2017-02-26 15 views
0

커다란 pcap 파일 (각각 ~ 100MB)이 있고 사전 파일 (txt)의 문자열이 들어있는 패킷을 걸러 내고 싶습니다. 단어 1가 PCAP 파일에 어디에서나 존재하는 경우어떻게 파이썬을 사용하여 pcap 파일에서 문자열을 필터링 할 수 있습니까?

line 1: word1 
line 2: word2 
line 3: word3 
line 4: word4 

그래서 (?를 TCP 페이로드에 있어야합니다), 내가 그 문자열을 제거 할하거나 PCAP에서 해당 패킷을 제거 할 : 사전 파일과 같은 포맷 파일. 효율적으로 (충분히 빠름)이를 달성 할 수있는 방법이 있습니까?

+0

문자열이 포함되어 있으면 파일에서 줄을 지우겠습니까? 당신이하려는 일, 지금까지 해봤 던 일, 그리고 약간의 입력과 기대되는 결과를 보여줄 수 있습니다. 메모리 제약 조건이 있다면 제약 조건 인 메모리 양을 명시 할 수 있습니까? – JohnD

+0

지금은 메모리 제약이 없습니다. 입력 파일은 네트워크의 다양한 호스트 트래픽을 포함하는 일반적인 pcap 파일입니다. 일부 호스트의 TCP 스트림을 따라 갔을 때, 나는 pcap 파일에 원하지 않는 많은 부적절한 내용 (성인용 컨텐츠)을 발견했습니다. 그래서, 나는 그 패킷/프레임이나 라인을 pcap 파일에서 제거하고 싶다. – Scissor

+1

stackoverflow는 코드 작성 서비스가 아니기 때문에 질문을 줄였습니다. 파이썬으로 pcap을 수정하는 방법을 찾고 있으며, 특정 수정을 직접 구현할 것입니다. 이와 같이 해석 할 때 질문은 [Python으로 PCAP 수정] (http://stackoverflow.com/questions/32250981/pcap-modification-with-python)과 중복됩니다. –

답변

0

나는 이것을 스스로 알아 냈습니다. 다른 사용자의 경우 Tshark는 TCP 스트림 내부의 문자열을 검색하는 데 유용 할 수 있습니다.

tshark -r <capture-file> -T fields -e ip.src -e ip.dst -e data |\ 
grep `echo -n "<ascii-string>" | xxd -p` |\ 
cut -f 1,2 

그래서, 내가 질문에 원하는 것을 달성하기 위해, 다음과 같은 bash는 스크립트가 유용 할 수 있습니다 : 당신이 IP를 소스의 주소와 목적지를 문자열을 검색하고 출력하고자 할 경우에 유용 할 수 있습니다 다음 :

value=`cat bad_words.txt` 

for i in ${value[@]}; do tshark -r my_test.pcap -T fields -e ip.src -e ip.dst -e data |\ 
grep `echo -n $i | xxd -p` |\ 
cut -f 1| uniq > $i; echo $i; done