2014-12-11 8 views
5

Sto usando Pyshark per analizzare il pacchetto dal file pcap.
Ho l'oggetto del pacchetto analizzato. Separatamente posso ottenere hex_value di ogni campo dopo aver cambiato l'attributo raw_mode su True.
Ottieni pieno dump hex di pacchetti analizzati in Pyshark

>>> packet = pyshark.FileCapture("ip_packet.pcap") 
>>> packet_1 = packet[0] 
>>> packet_1.layers() 
[<ETH Layer>, <IP Layer>, <DATA Layer>] 
>>> packet_1.ip.addr 
'192.168.1.5' 

>>> packet_1.ip.raw_mode = True 
>>> packet_1.ip.addr 
'c0a80105' 

Come posso ottenere hexdump del pacchetto completo?

risposta

1

Purtroppo, al momento non è possibile. Pyshark analizza l'output di tshark che non contiene i byte del pacchetto originale. Puoi provare a "riassemblare" il pacchetto da solo ma non lo consiglierei.

Così com'è, questa funzione può essere aggiunto, ma non è possibile in questo momento, se si vuole che specificamente vi suggerisco di utilizzare un pacchetto diverso o analizzare solo i pacchetti (senza alcun protocolli) da soli o utilizzando construct (o altro pacchetti simili).

+0

vuol dire non possiamo ottenere le dimensioni (in MB) di dati trasferiti? – fixxxer

+1

Puoi (dato che viene analizzato da wireshark) - usa pkt.captured_length – KimiNewt

0

Se è necessario analizzare il pacchetto (prima di avere la hexdump del pacchetto completo) si può avere uno sguardo sul pyshark_parser

+0

Nel progetto github possiamo leggere: "Alla ricerca di contributori - per varie ragioni ho difficoltà a trovare il tempo per mantenere e migliorare il pacchetto al momento Qualsiasi richiesta di pull verrà esaminata e se qualcuno è interessato ed è adatto, sarò lieto di includerli nel progetto –

+0

Questo progetto non ha documentazione, potresti per favore indirizzarmi alla classe o al metodo che dà il hexdump valore di un pacchetto? Non riesco a trovarlo. – Meysam