>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
C-plus-plus

SigDigger przekształca odbiornik SDR w laboratorium inżynierii wstecznej sygnałów radiowych

Jeśli kiedykolwiek uruchomiłeś RTL-SDR lub HackRF, prawdopodobnie znalazłeś się przyklejony do kaskady widma w Gqrx lub SDR#. Piękne kolorowe ślady spływają po ekranie, a coś stale miga, klika i transmituje pakiety w powietrzu. Ale gdy tylko napotkasz nieznany sygnał cyfrowy, standardowe programy SDR napotykają ścianę. Radzą sobie z radiem FM lub krótkofalówkami, ale aby zdekodować transmisję binarną z bezprzewodowego czujnika lub pilota bramy, zwykle musisz budować złożone konfiguracje w GNU Radio lub bolesnie eksportować surowe próbki IQ do zewnętrznych narzędzi.

To jest dokładnie luka, którą wypełnia SigDigger.

Czym jest

SigDigger to interaktywny analizator cyfrowych sygnałów radiowych z interfejsem graficznym Qt. Program pobiera strumień z urządzenia SDR przez uniwersalną warstwę SoapySDR i udostępnia narzędzia do analizy nieznanych sygnałów w locie.

Autor projektu, krótkofalowiec z znakiem wywoławczym EA1IYR, zbudował oprogramowanie zoptymalizowane pod kątem szybkiego rozpoznania radiowego. Aplikacja działa na GNU/Linux i macOS, łącząc wizualny analizator widma z modułami demodulacji i dekodowania.

Do czego SigDigger przydaje się w praktyce

W przeciwieństwie do konwencjonalnych odbiorników SDR, tutaj główny nacisk kładzie się na analizę struktury danych. Oto rzeczy, które przykuwają uwagę:

  • Interaktywna demodulacja w czasie rzeczywistym. Zaznaczasz region widma myszką i konfigurujesz demodulator dla żądanego typu modulacji: FSK, PSK lub ASK. Program natychmiast pokazuje strumień binarny, konstelacje fazowe i parametry nośnej.
  • Analiza sygnałów pakietowych i impulsowych. Dla sygnałów radiowych pojawiających się przez ułamki sekundy, dostępny jest tryb przechwytywania serii. Możesz szczegółowo badać zbocza impulsów i czasy transmisji.
  • Dekodowanie analogowego wideo. Jeśli w pobliżu działa stara kamera monitoringu lub analogowy nadajnik wideo na 5,8 GHz, SigDigger może renderować klatki w czasie rzeczywistym.
  • Słuchanie analogowego audio. Podstawowe funkcje zwykłego odbiornika nadal są dostępne: kanały AM, FM i SSB działają zgodnie z oczekiwaniami.
  • Wsparcie dla wtyczek. Konkretne dekodery łączą się przez wtyczki, na przykład odbieranie obrazów z satelitów pogodowych NOAA APT lub eksportowanie danych przez ZeroMQ do dalszego przetwarzania w Pythonie.

Dlaczego interfejs tak bardzo przypomina Gqrx

Pierwsze wrażenie ze zrzutów ekranu wywołuje déjà vu: układ okna i kaskada widma wyglądają dokładnie jak w Gqrx. Autor szczerze wyjaśnia to w dokumentacji: interfejs Gqrx okazał się najwygodniejszym i najbardziej praktycznym spośród istniejących.

Zamiast wymyślać koło na nowo i walczyć z zachłannością widgetów graficznych, deweloper wziął sprawdzony komponent kaskady widma z Gqrx i dostosował go do swoich potrzeb, dodając backend OpenGL i niestandardowe palety kolorów.

Jednak SigDigger jest zbudowany całkowicie inaczej pod spodem. Gqrx opiera się na ciężkim frameworku GNU Radio. SigDigger wykorzystuje własny silnik przetwarzania sygnałów cyfrowych o nazwie Suscan oraz niskopoziomową bibliotekę Sigutils. Model strumieniowy i przetwarzanie kolejek są tam zoptymalizowane pod kątem równoległej analizy sygnałów przy minimalnym opóźnieniu.

Jak uruchomić projekt

Złożona architektura ma swoją wadę: aby zbudować wszystko ze źródeł, musisz przejść przez łańcuch zależności. SigDigger opiera się na trzech powiązanych projektach autora: sigutils, suscan oraz bibliotece komponentów interfejsu SuWidgets.

Ręczna kompilacja wygląda onieśmielająco:

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

Jeśli nie chcesz zajmować się kompilowaniem bibliotek do systemu, masz dwie proste opcje. Na Linuksie najłatwiejszym sposobem jest pobranie gotowego AppImage ze strony wydań.

Druga opcja to użycie skryptu autora blsd, który pobiera niezbędne repozytoria i buduje izolowany zestaw z wtyczkami do oddzielnego folderu:

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

Użytkownicy Windowsa raczej nie uznają tego projektu za odpowiedni: autor wyraźnie stwierdza, że nie utrzymuje maszyn z Windows i nie buduje dla niego binariów ze względu na problemy z przenośnością zależności.

Kto znajdzie SigDigger przydatny

Jeśli interesuje Cię inżynieria wsteczna urządzeń IoT, alarmów samochodowych, inteligentnych liczników lub po prostu studiowanie protokołów radiowych wokół Ciebie, SigDigger oszczędza godziny żmudnej pracy. Eliminuje potrzebę ciągłego przeskakiwania między oprogramowaniem do nagrywania widma, narzędziami takimi jak inspectrum a skryptami w Jupyter Notebook.

Narzędzie pomaga określić typ modulacji, oszacować szybkość symbolową i przechwycić czysty strumień bitów do dalszej analizy za pomocą zaledwie kilku kliknięć. Aby szybko rozpocząć, potrzebujesz tylko niedrogiego klucza RTL-SDR i gotowego AppImage.

Powiązane projekty