Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/antirez/dump1090
Sicurezza Sistemi EmbeddedMappatura della ReteRaccolta InformazioniSicurezza WirelessUtilità e FrameworkSicurezza Hardware e IoT
GitHubantirez/dump1090

dump1090

Dump1090 è un semplice decodificatore Mode S per dispositivi RTLSDR

Vedi Repository
2.9k1.4k66 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Dump1090 README

Dump 1090 è un decoder Mode S progettato specificamente per dispositivi RTLSDR.

Le caratteristiche principali sono:

  • Decodifica robusta dei messaggi deboli: con Dump1090 molti utenti hanno osservato una portata migliorata rispetto ad altri decoder popolari.
  • Supporto di rete: stream TCP30003 (MSG5...), pacchetti raw, HTTP.
  • Server HTTP integrato che visualizza gli aeromobili attualmente rilevati su Google Map.
  • Correzione degli errori a bit singolo utilizzando il CRC a 24 bit.
  • Capacità di decodificare i messaggi DF11, DF17.
  • Capacità di decodificare formati DF come DF0, DF4, DF5, DF16, DF20 e DF21 dove il checksum è sottoposto a XOR con l'indirizzo ICAO forzando il campo checksum tramite indirizzi ICAO visti di recente.
  • Decodifica di campioni IQ grezzi da file (usando l'opzione da riga di comando --ifile).
  • Modalità interattiva da interfaccia a riga di comando in cui gli aeromobili attualmente rilevati vengono mostrati come un elenco che si aggiorna man mano che arrivano nuovi dati.
  • Decodifica delle coordinate CPR e calcolo della rotta dalla velocità.
  • Decodifica della posizione al suolo per aeromobili a terra (rullaggio, ecc.).
  • Server TCP che trasmette e riceve dati grezzi verso/da client connessi (usando --net).

Anche se di tanto in tanto aggiungo/sistemo cose nel mio fork, punto al minimalismo dell'implementazione. Tuttavia esiste un fork molto più ricco di funzionalità disponibile, sviluppato da MalcolmRobb.

Installation

Digitate "make".

Normal usage

Per catturare il traffico direttamente dal tuo dispositivo RTL e mostrare il traffico catturato sullo standard output, basta eseguire il programma senza alcuna opzione:

root@kitploit:~
./dump1090

Per emettere solo messaggi esadecimali:

root@kitploit:~
./dump1090 --raw

Per eseguire il programma in modalità interattiva:

root@kitploit:~
./dump1090 --interactive

Per eseguire il programma in modalità interattiva, con supporto di rete, e collegarti con il tuo browser a http://localhost:8080 per vedere il traffico in tempo reale:

root@kitploit:~
./dump1090 --interactive --net

In modalità interattiva è possibile avere un output meno denso di informazioni ma più "stile arcade", dove lo schermo viene aggiornato ogni secondo mostrando tutti gli aeromobili visti di recente con alcune informazioni aggiuntive come altitudine e numero di volo, estratte dai pacchetti Mode S ricevuti.

Using files as source of data

Per decodificare dati da file, usa:

root@kitploit:~
./dump1090 --ifile /path/to/binfile

Il file binario dovrebbe essere creato usando rtl_sdr in questo modo (o con qualsiasi altro programma in grado di produrre campioni IQ senza segno a 8 bit a una frequenza di campionamento di 2 MHz).

root@kitploit:~
rtl_sdr -f 1090000000 -s 2000000 -g 50 output.bin

Nell'esempio rtl_sdr viene usato un guadagno di 50; in pratica dovresti usare il guadagno più alto disponibile per il tuo tuner. Questo non è necessario quando si chiama Dump1090 stesso poiché è in grado di selezionare automaticamente il guadagno massimo supportato.

È possibile alimentare il programma con dati tramite standard input usando l'opzione --ifile con "-" come argomento.

Additional options

Dump1090 può essere chiamato con altre opzioni da riga di comando per impostare un guadagno, una frequenza diversi e così via. Per un elenco delle opzioni usa:

root@kitploit:~
./dump1090 --help

Tutto ciò che non è documentato qui dovrebbe essere ovvio, e per la maggior parte degli utenti chiamarlo senza alcun argomento è la cosa migliore da fare.

Reliability

Di default Dump1090 cerca di correggere gli errori di bit usando il checksum CRC. Il programma usa una tabella di sindromi precalcolata per identificare e correggere rapidamente fino a due errori di bit nei messaggi ricevuti.

Questo è effettivamente in grado di correggere gli errori e funziona in modo affidabile nella mia esperienza, tuttavia se sei interessato a dati molto affidabili ti suggerisco di usare l'opzione da riga di comando --no-fix per disabilitare la correzione degli errori.

Performances and sensibility of detection

Nella mia limitata esperienza Dump1090 è stato in grado di decodificare un gran numero di messaggi anche in condizioni in cui ho incontrato problemi usando altri programmi; tuttavia non è stato eseguito alcun test formale, quindi non posso davvero affermare che questo programma sia migliore o peggiore rispetto ad altri programmi simili.

Se riesci a catturare traffico che Dump1090 non è in grado di decodificare correttamente, mandami un'email con un link per il download. Potrei provare a migliorare il rilevamento durante il mio tempo libero (questo è solo un progetto hobbistico).

Surface position decoding

Dump1090 può decodificare i messaggi di posizione al suolo (Type Code 5-8), che vengono trasmessi dagli aeromobili mentre sono a terra (rullaggio, attesa ai gate, ecc.). Questi messaggi includono la posizione dell'aeromobile, la velocità al suolo e la rotta al suolo.

Le posizioni al suolo usano una codifica diversa rispetto alle posizioni in volo: il formato CPR (Compact Position Reporting) copre solo 90 gradi invece di 360, e richiede una posizione di riferimento entro 45 miglia nautiche per una decodifica senza ambiguità.

Invece di richiedere di configurare la posizione del tuo ricevitore, Dump1090 calcola automaticamente una posizione di riferimento facendo la media di tutte le posizioni in volo decodificate con successo. Questo funziona perché se riesci a ricevere traffico al suolo da un aeroporto, quasi certamente ricevi anche traffico in volo. La posizione media degli aeromobili in sorvolo fornisce un riferimento che è abbastanza vicino (ben all'interno del requisito delle 45 NM) per decodificare le posizioni al suolo.

Nota: le posizioni al suolo verranno visualizzate solo dopo che almeno una posizione in volo è stata decodificata con successo per stabilire il riferimento. Gli aeromobili a terra mostreranno altitudine 0 nel display interattivo.

Network server features

Abilitando il supporto di rete con --net, Dump1090 inizia ad ascoltare le connessioni dei client sulle porte 30002 e 30001 (puoi cambiare entrambe le porte se vuoi, vedi l'output di --help).

Port 30002

I client connessi ricevono i dati appena arrivano dal dispositivo (o dal file se si usa --ifile) nel formato raw simile al seguente:

root@kitploit:~
*8D451E8B99019699C00B0A81F36E;

Ogni voce è separata da un semplice newline (carattere LF, hex 0x0A).

Port 30001

La porta 30001 è la porta di ingresso raw e può essere usata per alimentare Dump1090 con dati nello stesso formato specificato sopra, con messaggi esadecimali che iniziano con un * e terminano con un carattere ;.

Quindi, per esempio, se c'è un'altra istanza remota di Dump1090 che raccoglie dati, è possibile sommare l'output a un'istanza locale di Dump1090 facendo qualcosa del genere:

root@kitploit:~
nc remote-dump1090.example.net 30002 | nc localhost 30001

È importante notare che ciò che viene ricevuto tramite la porta 30001 viene anche trasmesso ai client in ascolto sulla porta 30002.

In generale, tutto ciò che viene ricevuto dalla porta 30001 viene gestito esattamente come il traffico normale dei dispositivi RTL o dal file quando si usa --ifile.

È possibile usare Dump1090 semplicemente come hub usando --ifile con /dev/zero come argomento, come nell'esempio seguente:

root@kitploit:~
./dump1090 --net-only

Oppure, in alternativa, per vedere cosa succede sullo schermo:

root@kitploit:~
./dump1090 --net-only --interactive

Poi puoi alimentarlo da diverse fonti di dati da internet.

Port 30003

I client connessi ricevono messaggi in formato SBS1 (BaseStation), simili a:

root@kitploit:~
MSG,4,,,738065,,,,,,,,420,179,,,0,,0,0,0,0
MSG,3,,,738065,,,,,,,35000,,,34.81609,34.07810,,,0,0,0,0

Questo può essere usato per inviare dati a vari siti di condivisione senza la necessità di usare un altro decoder.

Antenna

I messaggi Mode S vengono trasmessi sulla frequenza 1090 MHz. Se hai un'antenna decente sarai in grado di captare segnali da aeromobili abbastanza lontani dalla tua posizione, soprattutto se sei all'aperto e in una posizione con una buona visuale del cielo.

Puoi facilmente costruire un'antenna molto economica seguendo le istruzioni su:

root@kitploit:~
http://antirez.com/news/46

Con questa antenna banale sono riuscito a captare segnali di aeromobili a più di 200 km da me.

Se sei interessato a un'antenna più seria, controlla le seguenti risorse:

  • http://gnuradio.org/data/grcon11/06-foster-adsb.pdf
  • http://www.lll.lu/~edward/edward/adsb/antenna/ADSBantenna.html
  • http://modesbeast.com/pix/adsb-ant-drawing.gif

Aggressive mode

Con --aggressive è possibile attivare la modalità aggressiva, una versione modificata del rilevamento e della decodifica dei pacchetti Mode S. La modalità aggressiva usa di solito più CPU (specialmente se ci sono molti aerei che inviano pacchetti DF17), ma può rilevare qualche messaggio in più.

L'algoritmo in modalità aggressiva è modificato nei seguenti modi:

  • Sono tollerati fino a due errori di demodulazione (voci adiacenti nel vettore di magnitudo con la stessa altezza). Normalmente vengono controllati solo i messaggi senza errori.
  • Cerca di correggere i messaggi DF17 provando ogni combinazione di due bit.

L'uso della modalità aggressiva è consigliato solo in luoghi con poco traffico per avere la possibilità di catturare qualche messaggio in più.

Debug mode

La modalità Debug è un aiuto visivo per migliorare l'algoritmo di rilevamento o per capire perché il programma non funziona con un dato input.

In questa modalità i messaggi vengono visualizzati in una rappresentazione grafica in stile ASCII art, in cui vengono mostrate le singole barre di magnitudo campionate a 2 MHz.

Un indice mostra il numero del campione, dove 0 è il campione in cui è stato trovato il primo picco Mode S. Prima del primo picco viene aggiunto anche del rumore di fondo aggiuntivo per fornire un po' di contesto.

Per abilitare la modalità debug e verificare quali combinazioni di pacchetti puoi registrare, usa dump1090 --help per ottenere un elenco dei flag di debug disponibili.

La modalità debug include un output javascript opzionale utilizzato per visualizzare i pacchetti tramite un browser web; puoi usare il file debug.html nella directory 'tools' per caricare il file frames.js generato.

How this program works?

Il codice è molto documentato e scritto per essere facile da capire. Per il programmatore diligente con una specifica Mode S tra le mani, dovrebbe essere banale capire come funziona.

Gli algoritmi che ho usato sono stati ottenuti fondamentalmente osservando molti messaggi visualizzati con un programma SDL usa-e-getta e cercando di modellare l'algoritmo in base all'aspetto grafico dei messaggi.

How to test the program?

Se hai un dispositivo RTLSDR e ti trovi in una zona dove ci sono aeromobili che volano sopra la tua testa, esegui il programma e verifica i segnali.

Tuttavia, se non hai un dispositivo RTLSDR, o se nella tua zona la presenza di aeromobili è molto limitata, potresti voler provare il file di esempio distribuito con la distribuzione Dump1090 nella directory "testfiles".

Basta eseguirlo così:

root@kitploit:~
./dump1090 --ifile testfiles/modes1.bin

What is --snip mode?

È solo un semplice filtro che prende in input campioni IQ grezzi a 8 bit e produce in output un file a cui mancano tutte le parti del file in cui I e Q sono inferiori al specificato per più di 32 campioni.

Usalo così:

root@kitploit:~
cat big.bin | ./dump1090 --snip 25 > small.bin

L'ho usato per creare un piccolo file di test da includere nella distribuzione del codice sorgente di questo programma.

Contributing

Dump1090 è stato scritto in alcuni momenti liberi durante il Natale 2012; è un progetto hobbistico, quindi potrò occuparmi dei problemi e migliorarlo solo nel tempo libero. Tuttavia, sei incoraggiato a inviare pull request per migliorare il programma. Un buon punto di partenza può essere la lista TODO inclusa nella distribuzione del sorgente.

Credits

Dump1090 è stato scritto da Salvatore Sanfilippo [email protected] e dagli altri contributori che hanno inviato patch nel corso del tempo (controlla la cronologia dei commit per maggiori informazioni) ed è rilasciato sotto la licenza BSD a tre clausole.

Scarica lo strumento