Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
dump1090 — Dump1090 est un simple décodeur Mode S pour les périphériques RTLSDR. | Kitploit
Outils/GitHubGitHub/antirez/dump1090
Sécurité des Systèmes EmbarquésCartographie RéseauCollecte d'InformationsSécurité Sans FilUtilitaires et FrameworksSécurité Matériel et IoT
GitHubantirez/dump1090

dump1090

Dump1090 est un simple décodeur Mode S pour les périphériques RTLSDR.

Voir le dépôt
2.9k1.4kil y a 6 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Dump1090 README

Dump 1090 est un décodeur Mode S spécialement conçu pour les périphériques RTLSDR.

Les principales fonctionnalités sont :

  • Décodage robuste des messages faibles ; avec Dump1090, de nombreux utilisateurs ont observé une portée améliorée par rapport aux autres décodeurs populaires.
  • Prise en charge réseau : flux TCP30003 (MSG5...), paquets bruts, HTTP.
  • Serveur HTTP intégré qui affiche les aéronefs actuellement détectés sur Google Map.
  • Correction d'erreurs sur un bit à l'aide du CRC 24 bits.
  • Capacité à décoder les messages DF11, DF17.
  • Capacité à décoder des formats DF tels que DF0, DF4, DF5, DF16, DF20 et DF21 où le checksum est xoré avec l'adresse ICAO en forçant par brute force le champ de checksum à l'aide des adresses ICAO récemment observées.
  • Décode des échantillons IQ bruts depuis un fichier (en utilisant l'option de ligne de commande --ifile).
  • Mode interactif en interface de ligne de commande où les aéronefs actuellement détectés sont affichés dans une liste qui se rafraîchit à mesure que les données arrivent.
  • Décodage des coordonnées CPR et calcul de la trajectoire à partir de la vitesse.
  • Décodage de la position au sol pour les aéronefs au sol (roulage, etc.).
  • Serveur TCP diffusant et recevant des données brutes vers/depuis les clients connectés (en utilisant --net).

Bien que j'ajoute ou corrige de temps en temps des choses dans mon fork, je vise un minimalisme de l'implémentation. Cependant, il existe un fork beaucoup plus complet disponible, développé par MalcolmRobb.

Installation

Tapez « make ».

Utilisation normale

Pour capturer le trafic directement depuis votre périphérique RTL et afficher le trafic capturé sur la sortie standard, exécutez simplement le programme sans aucune option :

root@kitploit:~
./dump1090

Pour afficher uniquement les messages hexadécimaux :

root@kitploit:~
./dump1090 --raw

Pour exécuter le programme en mode interactif :

root@kitploit:~
./dump1090 --interactive

Pour exécuter le programme en mode interactif avec la prise en charge réseau et vous connecter avec votre navigateur à http://localhost:8080 afin de voir le trafic en direct :

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

En mode interactif, il est possible d'obtenir une sortie moins dense en informations mais plus « style arcade », où l'écran est rafraîchi chaque seconde en affichant tous les aéronefs récemment vus avec quelques informations supplémentaires telles que l'altitude et le numéro de vol, extraites des paquets Mode S reçus.

Utilisation de fichiers comme source de données

Pour décoder des données depuis un fichier, utilisez :

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

Le fichier binaire doit être créé avec rtl_sdr comme ceci (ou avec tout autre programme capable de générer des échantillons IQ non signés de 8 bits à un taux d'échantillonnage de 2Mhz).

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

Dans l'exemple, rtl_sdr utilise un gain de 50 ; vous devriez simplement utiliser le gain le plus élevé disponible pour votre tuner. Cela n'est pas nécessaire lors de l'appel de Dump1090 lui-même, car il est capable de sélectionner automatiquement le gain le plus élevé pris en charge.

Il est possible de fournir des données au programme via l'entrée standard en utilisant l'option --ifile avec « - » comme argument.

Options supplémentaires

Dump1090 peut être appelé avec d'autres options de ligne de commande pour définir un gain, une fréquence différents, etc. Pour une liste des options, utilisez :

root@kitploit:~
./dump1090 --help

Tout ce qui n'est pas documenté ici devrait être évident, et pour la plupart des utilisateurs, l'appeler sans aucun argument est la meilleure chose à faire.

Fiabilité

Par défaut, Dump1090 tente de corriger les erreurs de bits à l'aide du checksum CRC. Le programme utilise une table de syndromes précalculée pour identifier et corriger rapidement jusqu'à deux erreurs de bits dans les messages reçus.

Cela permet effectivement de corriger les erreurs et fonctionne de manière fiable selon mon expérience. Cependant, si vous recherchez des données très fiables, je suggère d'utiliser l'option de ligne de commande --no-fix afin de désactiver la correction d'erreurs.

Performances et sensibilité de détection

D'après mon expérience limitée, Dump1090 a été capable de décoder un grand nombre de messages, même dans des conditions où j'ai rencontré des problèmes avec d'autres programmes. Cependant, aucun test formel n'a été effectué, je ne peux donc pas vraiment affirmer que ce programme est meilleur ou pire que des programmes similaires.

Si vous parvenez à capturer un trafic que Dump1090 n'arrive pas à décoder correctement, envoyez-moi un e-mail avec un lien de téléchargement. Je pourrai essayer d'améliorer la détection pendant mon temps libre (ce n'est qu'un projet de loisir).

Décodage de la position au sol

Dump1090 peut décoder les messages de position au sol (Type Code 5-8), qui sont transmis par les aéronefs lorsqu'ils sont au sol (roulage, attente aux portes, etc.). Ces messages incluent la position de l'aéronef, sa vitesse au sol et sa trajectoire au sol.

Les positions au sol utilisent un encodage différent de celui des positions en vol : le format CPR (Compact Position Reporting) ne couvre que 90 degrés au lieu de 360 et nécessite une position de référence à moins de 45 milles marins pour un décodage sans ambiguïté.

Au lieu de vous demander de configurer la position de votre récepteur, Dump1090 calcule automatiquement une position de référence en faisant la moyenne de toutes les positions en vol décodées avec succès. Cela fonctionne car si vous pouvez recevoir le trafic au sol d'un aéroport, vous recevez presque certainement aussi le trafic en vol. La position moyenne des aéronefs en survol fournit une référence suffisamment proche (bien dans l'exigence des 45 NM) pour décoder les positions au sol.

Remarque : les positions au sol ne seront affichées qu'après le décodage réussi d'au moins une position en vol pour établir la référence. Les aéronefs au sol apparaîtront avec une altitude de 0 dans l'affichage interactif.

Fonctionnalités du serveur réseau

En activant la prise en charge réseau avec --net, Dump1090 commence à écouter les connexions des clients sur les ports 30002 et 30001 (vous pouvez modifier les deux ports si vous le souhaitez, voir la sortie de --help).

Port 30002

Les clients connectés reçoivent les données dès qu'elles arrivent du périphérique (ou du fichier si --ifile est utilisé), dans un format brut similaire à celui-ci :

root@kitploit:~
*8D451E8B99019699C00B0A81F36E;

Chaque entrée est séparée par un simple saut de ligne (caractère LF, hex 0x0A).

Port 30001

Le port 30001 est le port d'entrée brut et peut être utilisé pour fournir à Dump1090 des données au même format que celui spécifié ci-dessus, avec des messages hexadécimaux commençant par * et se terminant par ;.

Ainsi, par exemple, s'il existe une autre instance distante de Dump1090 collectant des données, il est possible de combiner la sortie avec une instance locale de Dump1090 en faisant quelque chose comme ceci :

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

Il est important de noter que ce qui est reçu via le port 30001 est également diffusé aux clients qui écoutent sur le port 30002.

En général, tout ce qui est reçu depuis le port 30001 est traité exactement comme le trafic normal des périphériques RTL ou du fichier lorsque --ifile est utilisé.

Il est possible d'utiliser Dump1090 simplement comme un hub en utilisant --ifile avec /dev/zero comme argument, comme dans l'exemple suivant :

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

Ou, alternativement, pour voir ce qui se passe à l'écran :

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

Vous pouvez ensuite l'alimenter à partir de différentes sources de données sur Internet.

Port 30003

Les clients connectés reçoivent des messages au format SBS1 (BaseStation), similaires à :

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

Cela peut être utilisé pour fournir des données à divers sites de partage sans avoir besoin d'utiliser un autre décodeur.

Antenne

Les messages Mode S sont transmis sur la fréquence 1090 Mhz. Si vous avez une antenne correcte, vous pourrez capter des signaux d'aéronefs assez loin de votre position, surtout si vous êtes à l'extérieur et dans un endroit avec une bonne vue sur le ciel.

Vous pouvez facilement construire une antenne très bon marché en suivant les instructions sur :

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

Avec cette antenne triviale, j'ai pu capter des signaux d'aéronefs à plus de 200+ Km de moi.

Si vous êtes intéressé par une antenne plus sérieuse, consultez les ressources suivantes :

  • 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

Mode agressif

Avec --aggressive, il est possible d'activer le mode agressif, une version modifiée de la détection et du décodage des paquets Mode S. Le mode agressif utilise généralement plus de CPU (surtout si de nombreux avions envoient des paquets DF17), mais peut détecter quelques messages supplémentaires.

L'algorithme en mode agressif est modifié de la manière suivante :

  • Jusqu'à deux erreurs de démodulation sont tolérées (entrées adjacentes dans le vecteur de magnitude ayant la même hauteur). Normalement, seuls les messages sans erreur sont vérifiés.
  • Il tente de corriger les messages DF17 en essayant toutes les combinaisons de deux bits.

L'utilisation du mode agressif n'est conseillée que dans les endroits à faible trafic afin d'avoir une chance de capter quelques messages supplémentaires.

Mode débogage

Le mode débogage est une aide visuelle pour améliorer l'algorithme de détection ou pour comprendre pourquoi le programme ne fonctionne pas pour une entrée donnée.

Dans ce mode, les messages sont affichés dans une représentation graphique de type art ASCII, où les barres de magnitude individuelles échantillonnées à 2Mhz sont affichées.

Un index affiche le numéro de l'échantillon, où 0 est l'échantillon où le premier pic Mode S a été trouvé. Un bruit de fond supplémentaire est également ajouté avant le premier pic pour fournir un contexte.

Pour activer le mode débogage et vérifier quelles combinaisons de paquets vous pouvez journaliser, utilisez dump1090 --help pour obtenir la liste des indicateurs de débogage disponibles.

Le mode débogage inclut une sortie javascript optionnelle utilisée pour visualiser les paquets dans un navigateur web ; vous pouvez utiliser le fichier debug.html dans le répertoire « tools » pour charger le fichier frames.js généré.

Comment fonctionne ce programme ?

Le code est très documenté et écrit pour être facile à comprendre. Pour un programmeur appliqué ayant une spécification Mode S entre les mains, il devrait être trivial de comprendre comment il fonctionne.

Les algorithmes que j'ai utilisés ont été obtenus en observant essentiellement de nombreux messages affichés à l'aide d'un programme SDL jetable, et en essayant de modéliser l'algorithme en fonction de l'apparence graphique des messages.

Comment tester le programme ?

Si vous avez un périphérique RTLSDR et que vous vous trouvez dans une zone où des aéronefs survolent votre tête, lancez simplement le programme et vérifiez les signaux.

Cependant, si vous n'avez pas de périphérique RTLSDR, ou si la présence d'aéronefs est très limitée dans votre région, vous pouvez essayer le fichier d'exemple distribué avec Dump1090 dans le répertoire « testfiles ».

Exécutez-le simplement comme ceci :

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

Qu'est-ce que le mode --snip ?

C'est simplement un filtre qui prend en entrée des échantillons IQ bruts de 8 bits et produit en sortie un fichier sans toutes les parties du fichier où I et Q sont inférieurs au spécifié pendant plus de 32 échantillons.

Utilisez-le comme ceci :

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

Je l'ai utilisé afin de créer un petit fichier de test à inclure dans la distribution du code source de ce programme.

Contribuer

Dump1090 a été écrit pendant mon temps libre à Noël 2012 ; c'est un projet de loisir, je ne pourrai donc traiter les problèmes et l'améliorer que pendant mon temps libre. Cependant, vous êtes encouragé à envoyer des pull requests afin d'améliorer le programme. Un bon point de départ peut être la liste TODO incluse dans la distribution des sources.

Crédits

Dump1090 a été écrit par Salvatore Sanfilippo [email protected] et les autres contributeurs qui ont envoyé des correctifs au fil du temps (consultez l'historique des commits pour plus d'informations) et il est publié sous la licence BSD à trois clauses.

Télécharger l’outil