>_ DevTrendsit

Lingua

Home

Linguaggi

Sezioni

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicurezza
C-plus-plus

SigDigger trasforma un ricevitore SDR in un laboratorio di reverse engineering dei segnali radio

Se hai mai avviato un RTL-SDR o HackRF, probabilmente ti sei ritrovato incollato allo spettro waterfall in Gqrx o SDR#. Bellissime tracce colorate scendono a cascata sullo schermo, con qualcosa che lampeggia costantemente, clicca e trasmette pacchetti nell'aria. Ma non appena incontri un segnale digitale sconosciuto, i programmi SDR standard si fermano. Gestiscono bene le radio FM o i walkie-talkie, ma per decodificare una trasmissione binaria da un sensore wireless o da un telecomando del cancello, di solito devi costruire configurazioni complesse in GNU Radio o esportare dolorosamente campioni IQ grezzi verso utility di terze parti.

È esattamente questa la lacuna che SigDigger colma.

Cos'è

SigDigger è un analizzatore interattivo di segnali radio digitali con un'interfaccia grafica Qt. Il programma prende lo stream da un dispositivo SDR attraverso il layer universale SoapySDR e fornisce strumenti per decostruire segnali sconosciuti al volo.

L'autore del progetto, un radioamatore con il nominativo EA1IYR, ha costruito un software ottimizzato per la ricognizione radio rapida. L'applicazione gira su GNU/Linux e macOS, combinando un analizzatore di spettro visivo con moduli di demodulazione e decodifica.

A cosa serve SigDigger nella pratica

A differenza dei ricevitori SDR convenzionali, qui l'attenzione è sull'analisi della struttura dei dati. Ecco le cose che saltano all'occhio:

  • Demodulazione interattiva in tempo reale. Selezioni una regione dello spettro con il mouse e configuri il demodulatore per il tipo di modulazione desiderata: FSK, PSK o ASK. Il programma mostra immediatamente il flusso binario, le costellazioni di fase e i parametri della portante.
  • Analisi di segnali a pacchetti e a impulsi. Per i segnali radio che appaiono per frazioni di secondo, c'è una modalità di cattura burst. Puoi esaminare i fronti degli impulsi e le temporizzazioni delle trasmissioni in dettaglio.
  • Decodifica video analogico. Se una vecchia telecamera di sorveglianza o un trasmettitore video analogico a 5,8 GHz opera nelle vicinanze, SigDigger può renderizzare i frame in tempo reale.
  • Ascolto audio analogico. Le funzioni base di un ricevitore normale sono ancora presenti: i canali AM, FM e SSB funzionano come previsto.
  • Supporto plugin. I decodificatori specifici si connettono attraverso plugin, come la ricezione di immagini dai satelliti meteorologici NOAA APT o l'esportazione di dati tramite ZeroMQ per ulteriore elaborazione in Python.

Perché l'interfaccia somiglia così tanto a Gqrx

La prima impressione dagli screenshot scatena déjà vu: il layout della finestra e il waterfall sembrano esattamente quelli di Gqrx. L'autore lo spiega onestamente nella documentazione: l'interfaccia di Gqrx si è rivelata la più comoda e pratica tra quelle esistenti.

Invece di reinventare la ruota e combattere l'avidità dei widget grafici, lo sviluppatore ha preso il componente waterfall collaudato da Gqrx e lo ha adattato alle sue esigenze, aggiungendo un backend OpenGL e palette di colori personalizzate.

Tuttavia, SigDigger è costruito in modo completamente diverso sotto il cofano. Gqrx si basa sul pesante framework GNU Radio. SigDigger usa il suo proprio motore di elaborazione dei segnali digitali chiamato Suscan e la libreria di basso livello Sigutils. Il modello di streaming e l'elaborazione delle code sono ottimizzati per l'analisi parallela dei segnali con latenza minima.

Come eseguire il progetto

L'architettura complessa ha uno svantaggio: per compilare tutto dal codice sorgente, dovrai attraversare una catena di dipendenze. SigDigger si basa su tre progetti correlati dell'autore: sigutils, suscan e la libreria di componenti dell'interfaccia SuWidgets.

La compilazione manuale sembra intimidatoria:

git clone --recursive https://github.com/BatchDrake/sigutils
cd sigutils && mkdir -p build && cd build && cmake .. && make && sudo make install && cd ../..

git clone --recursive https://github.com/BatchDrake/suscan
cd suscan && mkdir -p build && cd build && cmake .. && make && sudo make install && cd ../..

git clone https://github.com/BatchDrake/SuWidgets
cd SuWidgets && qmake6 SuWidgetsLib.pro && make && sudo make install && cd ..

git clone https://github.com/BatchDrake/SigDigger
cd SigDigger && qmake6 SigDigger.pro && make && sudo make install && cd ..

Se non vuoi avere a che fare con la compilazione di librerie nel sistema, ci sono due opzioni semplici. Su Linux, il modo più semplice è scaricare un AppImage pronto all'uso dalla pagina delle release.

La seconda opzione è usare lo script dell'autore blsd, che scarica i repository necessari e compila un assembly isolato con i plugin in una cartella separata:

wget https://actinid.org/blsd
chmod a+x blsd
./blsd

Gli utenti Windows difficilmente troveranno il progetto adatto: l'autore dichiara esplicitamente che non mantiene macchine con Windows e non compila binari per esso a causa di problemi di portabilità delle dipendenze.

Chi troverà utile SigDigger

Se ti interessa il reverse engineering di dispositivi IoT, allarmi auto, contatori intelligenti, o semplicemente studiare i protocolli radio intorno a te, SigDigger fa risparmiare ore di lavoro di routine. Elimina la necessità di saltare costantemente tra software di registrazione dello spettro, utility come inspectrum e script in Jupyter Notebook.

Lo strumento aiuta a determinare il tipo di modulazione, stimare la velocità dei simboli e catturare un bitstream pulito per ulteriori analisi con pochi clic. Per iniziare rapidamente, tutto ciò che ti serve è un economico dongle RTL-SDR e un AppImage pronto all'uso.

Progetti correlati