← retour aux outils back to tools

# 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.org

## Overview

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-osmosdr` is the near-universal source/sink block for talking to HackRF, RTL-SDR, BladeRF, and USRP hardware from within a flowgraph
- Inspection tools like `inspectrum` are 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-osmosdr` est 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 `inspectrum` sont 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