SigDigger verandert een SDR-ontvanger in een radiografisch signaal reverse engineering-lab
Als je ooit een RTL-SDR of HackRF hebt opgestart, heb je waarschijnlijk uren naar het spectrumm waterfall in Gqrx of SDR# zitten kijken. Prachtige kleurrijke sporen stromen over het scherm, met voortdurend iets dat knippert, klikt en pakketten door de lucht verzendt. Maar zodra je een onbekend digitaal signaal tegenkomt, bereiken standaard SDR-programma's een dood punt. Ze werken prima voor FM-radio of walkie-talkies, maar om een binaire transmissie van een draadloze sensor of poortafstandsbediening te decoderen, moet je meestal complexe opstellingen bouwen in GNU Radio of pijnlijk raw IQ-samples exporteren naar externe utilities.
Dit is precies de lacune die SigDigger opvult.

Wat het is
SigDigger is een interactieve digitale radiografische signaalanalyzer met een Qt grafische interface. Het programma neemt de stream van een SDR-apparaat via de universele SoapySDR-laag en biedt tools voor het ontleden van onbekende signalen on the fly.
De auteur van het project, een radioamateur met het call-sign EA1IYR, heeft software gebouwd die geoptimaliseerd is voor snelle radioverkenning. De applicatie draait op GNU/Linux en macOS en combineert een visuele spectrumanalyzer met demodulatie- en decoderingsmodules.
Waar SigDigger in de praktijk nuttig voor is
In tegenstelling tot conventionele SDR-ontvangers ligt de focus hier op het analyseren van datastructuur. Hier zijn de dingen die opvallen:
- Interactieve real-time demodulatie. Je selecteert een spectrumbereik met de muis en configureert de demodulator voor het gewenste modulatie type: FSK, PSK of ASK. Het programma toont onmiddellijk de binaire stream, fase-constellaties en dragerparameters.
- Pakket- en pulssignaalanalyse. Voor radiosignalen die slechts fracties van een seconde verschijnen, is er een burst capture-modus. Je kunt pulsranden en verzendtijden gedetailleerd onderzoeken.
- Analoge video-decodering. Als een oude bewakingscamera of analoge videotransmitter op 5,8 GHz in de buurt werkt, kan SigDigger frames in real time renderen.
- Analoge audio luisteren. De basisfuncties van een gewone ontvanger zijn er nog steeds: AM, FM en SSB-kanalen werken zoals verwacht.
- Plugin-ondersteuning. Specifieke decoders worden aangesloten via plugins, zoals het ontvangen van NOAA APT-weersatellietbeelden of het exporteren van data via ZeroMQ voor verdere verwerking in Python.
Waarom de interface zoveel lijkt op Gqrx
De eerste indruk van de screenshots roept déjà vu op: de vensterindeling en het waterfall zien er precies uit als Gqrx. De auteur legt dit eerlijk uit in de documentatie: de Gqrx-interface bleek het meest praktische en handige onder de bestaande te zijn.
In plaats van het wiel opnieuw uit te vinden en te vechten met de gulzigheid van grafische widgets, nam de ontwikkelaar het bewezen waterfall-component van Gqrx en paste het aan voor zijn behoeften aan, met een OpenGL-backend en aangepaste kleurenpaletten.
SigDigger is echter onderhuids volledig anders opgebouwd. Gqrx is afhankelijk van het zware GNU Radio-framework. SigDigger gebruikt zijn eigen digitale signaalverwerkingsengine genaamd Suscan en de low-level Sigutils-bibliotheek. Het streaming model en de queue-verwerking daar zijn geoptimaliseerd voor parallelle signaalanalyse met minimale latentie.
Hoe het project te draaien
De complexe architectuur heeft een nadeel: om alles vanaf de bron te bouwen, moet je door een keten van afhankelijkheden. SigDigger is afhankelijk van drie gerelateerde projecten van de auteur: sigutils, suscan en de interface component library SuWidgets.
Handmatig bouwen ziet er intimiderend uit:
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 ..
Als je niet wilt rommelen met het compileren van bibliotheken in het systeem, zijn er twee eenvoudige opties. Op Linux is de gemakkelijkste manier om een kant-en-klare AppImage te downloaden van de releases pagina.
De tweede optie is het gebruik van het script van de auteur blsd, dat de noodzakelijke repositories ophaalt en een geïsoleerde assembly met plugins bouwt in een aparte map:
wget https://actinid.org/blsd
chmod a+x blsd
./blsd
Windows-gebruikers zullen het project waarschijnlijk niet geschikt vinden: de auteur stelt expliciet dat ze geen machines met Windows draaiende houden en geen binaries voor Windows bouwen vanwege afhankelijkheidsproblemen.
Wie SigDigger nuttig zal vinden
Als je bezig bent met reverse engineering van IoT-apparaten, auto-alarmen, slimme meters, of gewoon radioprotocollen om je heen bestudeert, bespaart SigDigger uren routinematig werk. Het elimineert de noodzaak om voortdurend te schakelen tussen spectrumm-opnamesoftware, utilities zoals inspectrum en scripts in Jupyter Notebook.
Het tool helpt bij het bepalen van het modulatie type, het schatten van de symbolsnelheid en het vastleggen van een schone bitstream voor verdere analyse met slechts een paar klikken. Om snel aan de slag te gaan, heb je alleen een goedkope RTL-SDR-dongle en een kant-en-klare AppImage nodig.
Gerelateerde projecten