Wave-Net / wavenet-backend

packet capture logic using scapy library
0 stars 0 forks source link

pcap 파일 생성 기능 #77

Closed zhy2on closed 1 month ago

zhy2on commented 1 month ago

scapy의 wrpcap 사용해서 pcap 파일 저장 했었는데 scapy에서 mqtt 처리가 잘못돼 버려서 scapy의 패킷 객체를 사용하면 안 된다

그래서 그냥 pyshark의 패킷의 raw bytes를 이용해서 직접 pcap 파일 생성 기능 구현 해야 함...

zhy2on commented 1 month ago

하... 결국 pyshark에서 pcap 파일을 생성하기 위해선 use_json=True, include_raw=True를 사용해야 하는데 use_json=True를 하면 클래스 인스턴스 형식이 아니라 패킷이 json 형태로 파싱이 된다.. 기존에 사용하던 인스턴스의 attribute로 접근하는 게 아니라, 그냥 dict의 key값으로 접근을 해야 함.

capture = LiveCapture(interface=NETWORK_INTERFACE,
                              bpf_filter=filter_expr,
                              use_json=True, include_raw=True)
zhy2on commented 1 month ago

하하... 그냥 스레드 하나 또 만들어서 scapy로 캡쳐하고 scapy 패킷 객체로 wrpcap을 해버림...

애초에 raw bytes는 scapy도 잘 저장 하는데 scapy가 mqtt 레이어 파싱을 잘못하는 문제라서 raw bytes로 pcap 파일을 만드는 거는 문제없이 됨~~