2017-12-13 41 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'スニフを妨害しているように見えます。 – user6456568

+0

最初に 'self.eventloop.run_until_complete(self._get_parsed_pa​​cket_from_tshark(コールバック))'と 'RuntimeError:イベントループが実行されています.'あなたはその理由を知っていますか? – user6456568

関連する問題