2013-02-20 8 views
5

eseguendo il comando di file contro un file pcap stamperanno qualcosa lungo le linee di -file pcap e endianness

$ file pcap.pcap 
pcap.pcap: tcpdump capture file (little-endian) - version 2.4 .... 

Sono stato alla ricerca di un modo per creare un file di big-endian cattura, o scaricare un campione di uno online, ma senza successo.

Sono anche confuso su cosa esattamente in un pcap sarebbe little-endian o big-endian. Ho capito che libpcap ha catturato ciò che vede sul filo.

risposta

8

Bene, un modo per farlo sarebbe quello di eseguire tcpdump o Wireshark su una macchina big-endian; prova ad ottenere, ad esempio, un vecchio Mac basato su PowerPC con OS X.

Oltre a ciò, l'unico modo per ottenerli è cercare, per esempio, the Wireshark Wiki's SampleCaptures page per vedere se sono state descritte acquisizioni come fatto su, diciamo, una macchina basata su SPARC o una macchina basata su PowerPC (o una macchina MIPS big-endian, come una macchina SGI, ma non una macchina DEC), o cercare un bug in the Wireshark bug database che contenga una cattura fatta su una macchina big-endian. libpcap/WinPcap scrive i file di acquisizione nell'ordine dei byte dell'host - l'obiettivo è eliminare l'overhead di scambio dei byte durante la scrittura delle acquisizioni dal vivo, spostando il carico sul programma che legge il file.

E, sì, libpcap/capture WinPcap quello che vedono sul filo, MA aggiungono un file di intestazione dare, ad esempio, il tipo di intestazione livello di collegamento per i pacchetti, e aggiungere ad ogni pacchetto di intestazione del pacchetto fornendo un timestamp per il pacchetto, la lunghezza del pacchetto come appariva sulla rete e il numero di byte che sono stati catturati (nel caso in cui il programma di cattura fosse detto di "tagliare" il pacchetto alla dimensione massima, per ridurre Larghezza di banda della CPU e I/O durante la cattura se, ad esempio, sono interessanti solo le intestazioni di livello di collegamento, livello di rete e livello di trasporto). L'informazione è ciò che è big-endian o little-endian; il pacchetto attuale dati è in qualsiasi ordine in cui si trovava sulla rete (sebbene i metadati del pacchetto, come le informazioni radio per 802.11, potrebbero essere in un ordine byte standard, come little-endian per informazioni radio radiotap o potrebbero essere in ordine byte host, come nel caso dei metadati USB Linux).

+3

Il file di acquisizione collegato a Wireshark Bug # 7221 è big-endian ... https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7221 – willyo

0

Per convertire endianness di un file pcap, è anche possibile utilizzare wireshark o tcpdump:

  • Con wireshark, basta aprire il file e salvarlo, senza modifiche. Il file salvato avrà la stessa endianess del tuo computer.

  • o con tcpdump, basta fare "sudo tcpdump -r inputpcapfile -w outputpcapfile"

In questo modo è possibile convertire un file pcap per avere lo stesso endianess del tuo computer. Se il tuo computer usa little endian e il file pcap è big endian, il file salvato utilizzerà little endian. Questo funziona solo in un modo, non è possibile usarlo per convertire in altro endianness rispetto al tuo computer.