2015-01-11 6 views
1

나는 Scapy 라이브러리와 함께 .cap 파일을 읽고 쓰려고하는데, 내 .pcap 파일 중 하나가이 오류/경고를 읽고 출력 할 때 패킷을 쓰지 못하게합니다. 다른 .pcap 파일이 잘 작동합니다 (내가 직접 녹음 한 파일).Scapy PcapReader : 알 수없는 LL 유형 [197]/[0xc5]. 원시 패킷 사용. 경고

아래 코드는 사용하고 있습니다. 주제에 대한 도움을 주시면 감사하겠습니다.

from scapy.all import * 
import os 

count = 0 

file_name = "/root/Desktop/test.pcap" 

data = rdpcap(file_name) 

os.system("clear") 

filtered = (pkt for pkt in data 
    if UDP in pkt) 

def counting(count): 
    for pkt in data[UDP]: 
     count += 1 
    print count 

counting(count) 
wrpcap("/root/Desktop/testing.pcap", filtered) 

답변

1

경고는 지정된 파일이 scapy에서 지원하지 않는 링크 유형 197와 패킷을 보유하고 있으며, 따라서 패킷 원시 패킷으로 해석되는 것을 말한다.

이들은 원시 패킷이므로 scapyUDP 레이어를 찾을 수 없습니다. 따라서 표현식 (pkt for pkt in data if UDP in pkt)은 산출 할 항목이없는 생성기로 평가됩니다.

따라서 wrpcap("/root/Desktop/testing.pcap", filtered)을 실행하면 빈 파일이 기록됩니다.


이 링크 유형 here 검색은 tcpdump 이름 LINKTYPE_ERF 등이 링크 유형을 알 수 있으며 Endace DAG 카드를, 의사 헤더, 다양한 링크 계층 유형을 나타내는 것을 그것은 Endace ERF 기록을 캡슐화합니다.

밝게 조사한 바에 따르면 ERF 형식의 파일을 scapy이 지원하는 일반 pcap 형식으로 변환 할 수 있습니다. 이 과정에서 도움이되는 온라인 리소스는 thisthis입니다. Wiresharksupports this format부터 Wireshark을 통해 파일을 열고 다른 형식으로 저장할 수도 있습니다.

+0

정보 주셔서 감사합니다. 나는 단순히 .erf 파일에서 .pcap으로 저장 한 .pcap 파일을 사용하고 있었는데 캡슐화에 대해 알지 못했습니다. –