Analyse avec Inspectrum
L’épreuve fournit une capture au format IQ, format binaire encodant des valeurs complexes. Pour se faire une idée du contenu de ce signal, on l’ouvre avec Inspectrum. On découvre alors 3 ensembles de signaux modulés en FM.
Pour vérifier que les signaux sont bien des stations de radio FM :
- on ajoute un plot dérivé en fréquence autour d’une porteuse,
- on exporte les échantillons dans un fichier au format float32,
- puis on importe ce fichier dans Audacity (File > Import > Raw data > 32-bit float) et on entend alors un violon et un clavecin jouer du Bach.
On remarque que les 3 ensembles de signaux encodent la même musique (mais avec un démarrage légèrement décalé). C’est étonnant pour des stations de radio FM !
Proposition de solution
Après quelques recherches pour trouver un logiciel démodulant la radio FM, on teste d’ouvrir le signal avec GQRX.
GQRX est basé sur GNURadio, mais propose une boîte à outil pratique pour rapidement explorer un signal FM.
À l’ouverture du logiciel, on change la Device string
à file=/path/to/capture.iq,freq=89.8e6,rate=600e3,repeat=true,throttle=true
.
Une fois le fichier ouvert, nous pouvons déplacer une bande de fréquence et entendre de nouveau la musique.
On change le mode en WFM (stereo)
, et on entend alors la musique en bien meilleure qualité que précédemment.
Après un peu de lecture sur le fonctionnement de la radio FM, on tombe sur Radio Data System. On apprend donc qu’une sous-porteuse à 57 kHz comporte de la donnée binaire, c’est ainsi qu’une radio peut afficher quelques métadonnées pour une station de radio.
Dans GQRX on active le RDS avec View > RDS
puis Enable RDS
dans le panneau en bas à droite.
On obtient ainsi une partie du flag !
Il suffit de se déplacer sur les 2 autres stations pour retrouver l’intégralité du flag :
FCSC{bcefe912993a313d752da5f3b3ae15eddc34a3b04049856fe7d22cfbb71b72d9}