2017-12-13 2 views
0

패킷을 스니핑하기 위해 scapy를 사용했지만 Scapy는 PyShark (Wireshark)와 같은 패킷 정보를 반환 할 수 없습니다. 예를 들면 다음과 같습니다.바이트 배열을 PyShark 데이터 프레임으로 변환하는 방법이 있습니까?

>>> cap = pyshark.FileCapture('test.pcap', only_summaries=True) 
>>> cap[1].info 
'FTP Data: 1460 bytes' 

>>> cap[2].info 
'Response: 150 Opening BINARY mode data connection for Notes chapter2.pdf(14868284 bytes)' 

>>> type(cap[2]) 
<class 'pyshark.packet.packet_summary.PacketSummary'> 

이 기능은 내가 원하지만 실제로는 패킷 원시 바이트 배열 또는 Scapy 데이터 프레임 만 있습니다. 바이트 배열을 PyShark 데이터 프레임으로 변환하는 솔루션입니까? PyShark를 사용하여 스니핑하면 컴퓨터에 이상한 문제가 있기 때문입니다.

답변

0

당신이 바이트 변수로 패킷이있는 경우와 Pyshark에서 그것을 읽을 수 있습니다

c = pyshark.InMemCapture() 
c.parse_packet(binary_packet) 
c.parse_packets(list_of_binary_packets) # More efficient 
+0

그것은 내가 원하는 걸주지 않습니다. 그러나, 나는이 코드를 새로운 쓰레드에서 사용할 때, 때때로'parse_packet' 과정에서 멈추고'Timeout Error'를 발생시키고 결과를 줄 수 없다는 것을 알아 차릴 수 있습니다. 게다가'dumpcap'이라는 새로운 프로세스가 열리고 제 'scapy' sniff를 방해하는 것 같습니다. – user6456568

+0

처음'self.eventloop.run_until_complete (self._get_parsed_packet_from_tshark (콜백))'그리고'RuntimeError : 이벤트 루프가 실행 중입니다 .' 이유를 알고 계십니까? – user6456568

관련 문제