GNU Radio
Toolkit logiciel libre pour la radio logicielle (SDR), utilisé pour construire des flowgraphs de traitement du signal pour l'analyse et les attaques RF. Free software development toolkit for software-defined radio, used to build signal-processing flowgraphs for RF analysis and attacks.
↗ https://www.gnuradio.orgOverview
GNU Radio is a graphical and programmatic framework for building software-defined radio (SDR) applications out of reusable signal-processing blocks — sources, filters, demodulators, decoders, sinks — wired together into a “flowgraph”. In RF security work it’s the foundation for reverse-engineering unknown protocols (garage door remotes, key fobs, industrial telemetry, proprietary IoT links) captured with a HackRF, RTL-SDR, USRP, or similar device.
Common Usage
Launch the GNU Radio Companion GUI flowgraph editor
gnuradio-companion
Run a compiled flowgraph (.py generated from a .grc file) directly
python3 my_flowgraph.py
Quick spectrum look with a bundled example app
gqrx # separate package, built on GNU Radio, for receive-only spectrum viewing
Typical Flowgraph Building Blocks
Source: osmocom Source (HackRF/RTL-SDR/USRP input)
-> Frequency Xlating FIR Filter (tune/decimate to signal of interest)
-> AM/FM/OOK Demod block
-> Clock Recovery / Symbol Sync
-> Decoder (custom or gr-modules like gr-osmosdr, gr-ais, gr-adsb)
-> File Sink / Message Debug (capture decoded bits for analysis)
Example: run a signal capture to a raw IQ file for offline analysis
osmocom_fft -a hackrf=0 -f 433.92M -s 2M
Replay a captured IQ file through a flowgraph for reverse engineering
python3 replay_flowgraph.py --input capture.cfile --rate 2000000
Tips
- Start unknown signals in a File Sink flowgraph, then iterate offline on the captured IQ — avoids burning airtime re-transmitting during analysis
gr-osmosdris the near-universal source/sink block for talking to HackRF, RTL-SDR, BladeRF, and USRP hardware from within a flowgraph- Inspection tools like
inspectrumare often faster than GRC for eyeballing raw captures before building a full decode chain - Many public flowgraphs for common protocols (POCSAG, ADS-B, AIS, ISM-band OOK/ASK remotes) exist on GitHub — check before building from scratch
Help / Man page
gnuradio-companion [options] [file.grc]
-h, --help Show help
file.grc Open a specific flowgraph on launch
GNU Radio is primarily used via:
1. gnuradio-companion (GUI) - build flowgraphs visually, generates Python
2. Python API - import gnuradio.gr and related blocks directly in scripts
Common block libraries:
gr-osmosdr SDR hardware source/sink abstraction (HackRF, RTL-SDR, USRP, BladeRF)
gr-digital Digital modulation/demodulation blocks
gr-analog Analog modulation (AM/FM/PM) blocks
gr-fft FFT and spectral analysis blocks
Vue d’ensemble
GNU Radio est un framework graphique et programmatique pour construire des applications de radio logicielle (SDR) à partir de blocs de traitement du signal réutilisables : sources, filtres, démodulateurs, décodeurs, sinks, câblés ensemble en un “flowgraph”. Dans le travail de sécurité RF, c’est la base pour rétro-ingénierer des protocoles inconnus (télécommandes de porte de garage, clés de voiture, télémétrie industrielle, liaisons IoT propriétaires) capturés avec un HackRF, un RTL-SDR, un USRP ou un appareil similaire.
Utilisation courante
# Lancer l'éditeur de flowgraph graphique GNU Radio Companion
gnuradio-companion
# Exécuter un flowgraph compilé (.py généré depuis un fichier .grc) directement
python3 my_flowgraph.py
# Coup d'œil rapide sur le spectre avec une app d'exemple intégrée
gqrx # paquet séparé, construit sur GNU Radio, pour la visualisation de spectre en réception seule
Blocs de construction typiques d’un flowgraph
Source: osmocom Source (entrée HackRF/RTL-SDR/USRP)
-> Frequency Xlating FIR Filter (accorder/décimer vers le signal d'intérêt)
-> Bloc de démodulation AM/FM/OOK
-> Récupération d'horloge / Symbol Sync
-> Décodeur (personnalisé ou modules gr comme gr-osmosdr, gr-ais, gr-adsb)
-> File Sink / Message Debug (capturer les bits décodés pour analyse)
Exemple : lancer une capture de signal vers un fichier IQ brut pour analyse hors-ligne
osmocom_fft -a hackrf=0 -f 433.92M -s 2M
Rejouer un fichier IQ capturé à travers un flowgraph pour la rétro-ingénierie
python3 replay_flowgraph.py --input capture.cfile --rate 2000000
Conseils
- Commencer les signaux inconnus dans un flowgraph File Sink, puis itérer hors-ligne sur l’IQ capturé : évite de brûler du temps d’antenne en re-transmettant pendant l’analyse
gr-osmosdrest le bloc source/sink quasi-universel pour dialoguer avec du matériel HackRF, RTL-SDR, BladeRF et USRP depuis un flowgraph- Des outils d’inspection comme
inspectrumsont souvent plus rapides que GRC pour visualiser des captures brutes avant de construire une chaîne de décodage complète - De nombreux flowgraphs publics pour des protocoles courants (POCSAG, ADS-B, AIS, télécommandes OOK/ASK en bande ISM) existent sur GitHub : vérifier avant de repartir de zéro
Aide / Page de manuel
gnuradio-companion [options] [file.grc]
-h, --help Show help
file.grc Open a specific flowgraph on launch
GNU Radio is primarily used via:
1. gnuradio-companion (GUI) - build flowgraphs visually, generates Python
2. Python API - import gnuradio.gr and related blocks directly in scripts
Common block libraries:
gr-osmosdr SDR hardware source/sink abstraction (HackRF, RTL-SDR, USRP, BladeRF)
gr-digital Digital modulation/demodulation blocks
gr-analog Analog modulation (AM/FM/PM) blocks
gr-fft FFT and spectral analysis blocks