# Radio
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)! Inne sposoby wsparcia HackTricks: * Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)! * Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com) * Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family) * **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) na GitHubie.
## SigDigger [**SigDigger** ](https://github.com/BatchDrake/SigDigger)to darmowy analizator sygnałów cyfrowych dla systemów GNU/Linux i macOS, zaprojektowany do wyodrębniania informacji z nieznanych sygnałów radiowych. Obsługuje różnorodne urządzenia SDR za pomocą SoapySDR, umożliwia regulowaną demodulację sygnałów FSK, PSK i ASK, dekodowanie analogowego wideo, analizę sygnałów impulsowych i słuchanie kanałów głosowych analogowych (wszystko w czasie rzeczywistym). ### Podstawowa konfiguracja Po zainstalowaniu istnieje kilka rzeczy, które warto rozważyć skonfigurowanie.\ W ustawieniach (drugie przycisku zakładki) możesz wybrać **urządzenie SDR** lub **wybrać plik** do odczytu, ustawić częstotliwość do syntonizacji i częstotliwość próbkowania (zalecane do 2,56Msps, jeśli twój komputer to obsługuje)\\ ![](<../../.gitbook/assets/image (245).png>) W zachowaniu interfejsu GUI zaleca się włączenie kilku rzeczy, jeśli twój komputer to obsługuje: ![](<../../.gitbook/assets/image (472).png>) {% hint style="info" %} Jeśli zauważysz, że twój komputer nie przechwytuje sygnałów, spróbuj wyłączyć OpenGL i zmniejszyć częstotliwość próbkowania. {% endhint %} ### Zastosowania * Aby **przechwycić jakiś czas sygnału i go przeanalizować**, wystarczy przytrzymać przycisk "Naciśnij, aby przechwycić" tak długo, jak potrzebujesz. ![](<../../.gitbook/assets/image (960).png>) * **Tuner** w SigDigger pomaga **lepiej przechwytywać sygnały** (ale może je również pogorszyć). Idealnie zacznij od 0 i **zwiększaj go**, aż znajdziesz, że **szum** wprowadzony jest **większy** niż **poprawa sygnału**, którą potrzebujesz). ![](<../../.gitbook/assets/image (1099).png>) ### Synchronizacja z kanałem radiowym Z [**SigDigger** ](https://github.com/BatchDrake/SigDigger)synchronizuj się z kanałem, który chcesz słuchać, skonfiguruj opcję "Podgląd audio pasma podstawowego", ustaw szerokość pasma, aby uzyskać wszystkie przesyłane informacje, a następnie ustaw tuner na poziom przed rozpoczęciem zauważalnego wzrostu szumu: ![](<../../.gitbook/assets/image (585).png>) ## Interesujące sztuczki * Gdy urządzenie wysyła serie informacji, zazwyczaj **pierwsza część będzie preambułą**, więc **nie musisz się martwić**, jeśli **nie znajdziesz informacji** tam **lub jeśli występują błędy**. * W ramkach informacyjnych zazwyczaj powinieneś **znaleźć różne ramki dobrze wyrównane między nimi**: ![](<../../.gitbook/assets/image (1076).png>) ![](<../../.gitbook/assets/image (597).png>) * **Po odzyskaniu bitów możesz potrzebować je w jakiś sposób przetworzyć**. Na przykład w kodowaniu Manchester jedno w górę+jedno w dół będzie 1 lub 0, a jedno w dół+jedno w górę będzie drugim. Więc pary 1 i 0 (góry i dół) będą rzeczywistym 1 lub rzeczywistym 0. * Nawet jeśli sygnał używa kodowania Manchester (niemożliwe jest znalezienie więcej niż dwóch zer lub jedynek pod rząd), możesz **znaleźć kilka jedynek lub zer razem w preambule**! ### Odkrywanie typu modulacji za pomocą IQ Istnieją 3 sposoby przechowywania informacji w sygnałach: Modulacja **amplitudy**, **częstotliwości** lub **fazy**.\ Jeśli sprawdzasz sygnał, istnieją różne sposoby próby ustalenia, co jest używane do przechowywania informacji (znajdź więcej sposobów poniżej), ale dobrym sposobem jest sprawdzenie wykresu IQ. ![](<../../.gitbook/assets/image (788).png>) * **Wykrywanie AM**: Jeśli na wykresie IQ pojawią się na przykład **2 koła** (prawdopodobnie jedno w 0 i drugie o innej amplitudzie), może to oznaczać, że jest to sygnał AM. Wynika to z faktu, że na wykresie IQ odległość między 0 a kołem to amplituda sygnału, więc łatwo jest zobaczyć różne używane amplitudy. * **Wykrywanie PM**: Podobnie jak na poprzednim obrazie, jeśli znajdziesz małe koła niepowiązane między sobą, prawdopodobnie oznacza to, że używana jest modulacja fazowa. Wynika to z faktu, że na wykresie IQ kąt między punktem a 0,0 to faza sygnału, co oznacza, że używane są 4 różne fazy. * Zauważ, że jeśli informacja jest ukryta w zmianie fazy, a nie w samej fazie, nie zobaczysz wyraźnie różnych faz. * **Wykrywanie FM**: Wykres IQ nie ma pola do identyfikacji częstotliwości (odległość od centrum to amplituda, a kąt to faza).\ Dlatego, aby zidentyfikować FM, powinieneś **zobaczyć praktycznie tylko koło** na tym wykresie.\ Co więcej, różna częstotliwość jest "reprezentowana" na wykresie IQ przez **przyspieszenie prędkości wzdłuż koła** (więc w SysDigger wybierając sygnał, wykres IQ jest wypełniany, jeśli znajdziesz przyspieszenie lub zmianę kierunku w utworzonym kole, może to oznaczać, że jest to FM): ## Przykład AM {% file src="../../.gitbook/assets/sigdigger_20220308_165547Z_2560000_433500000_float32_iq.raw" %} ### Odkrywanie AM #### Sprawdzanie obwiedni Sprawdzając informacje AM za pomocą [**SigDigger** ](https://github.com/BatchDrake/SigDigger)i patrząc tylko na **obwiednię**, można zobaczyć różne wyraźne poziomy amplitudy. Użyty sygnał wysyła impulsy z informacjami w AM, tak wygląda jeden impuls: ![](<../../.gitbook/assets/image (590).png>) A tak wygląda część symbolu z przebiegiem: ![](<../../.gitbook/assets/image (734).png>) #### Sprawdzanie histogramu Możesz **wybrać cały sygnał**, gdzie znajdują się informacje, wybrać tryb **Amplitudy** i **Wybór** oraz kliknąć na **Histogram**. Możesz zauważyć, że znajdują się tylko 2 wyraźne poziomy ![](<../../.gitbook/assets/image (264).png>) Na przykład, jeśli zamiast Amplitudy wybierzesz Częstotliwość w tym sygnale AM, znajdziesz tylko 1 częstotliwość (nie ma możliwości, żeby informacja modulowana w częstotliwości używała tylko 1 częstotliwości). ![](<../../.gitbook/assets/image (732).png>) Jeśli znajdziesz wiele częstotliwości, potencjalnie nie będzie to FM, prawdopodobnie częstotliwość sygnału została zmieniona ze względu na kanał. #### Z IQ W tym przykładzie możesz zobaczyć, jak jest **duży okrąg**, ale także **wiele punktów w centrum.** ![](<../../.gitbook/assets/image (222).png>) ### Uzyskaj Szybkość Symbolu #### Z jednym symbolem Wybierz najmniejszy symbol, jaki znajdziesz (aby mieć pewność, że to tylko 1) i sprawdź "Częstotliwość wyboru". W tym przypadku byłaby to 1.013 kHz (czyli 1 kHz). ![](<../../.gitbook/assets/image (78).png>) #### Z grupą symboli Możesz także określić liczbę symboli, które zamierzasz wybrać, a SigDigger obliczy częstotliwość 1 symbolu (im więcej symboli wybranych, tym lepiej prawdopodobnie). W tym scenariuszu wybrałem 10 symboli, a "Częstotliwość wyboru" wynosi 1.004 kHz: ![](<../../.gitbook/assets/image (1008).png>) ### Uzyskaj Bity Znalezienie, że jest to **sygnał z modulacją AM** i **szybkość symbolu** (i wiedząc, że w tym przypadku coś w górę oznacza 1, a coś w dół oznacza 0), jest bardzo łatwe **uzyskać bity** zakodowane w sygnale. Wybierz sygnał z informacją, skonfiguruj próbkowanie i decyzję, a następnie naciśnij próbkowanie (upewnij się, że wybrano **Amplitudę**, skonfigurowano odkrytą **szybkość symbolu** i wybrano **Odzyskiwanie zegara Gadnera**): ![](<../../.gitbook/assets/image (965).png>) * **Synchronizuj z interwałami wyboru** oznacza, że jeśli wcześniej wybrałeś interwały, aby znaleźć szybkość symbolu, ta szybkość symbolu zostanie użyta. * **Ręczny** oznacza, że zostanie użyta wskazana szybkość symbolu. * W **Wyborze stałego interwału** określasz liczbę interwałów, które należy wybrać, a oblicza się z nich szybkość symbolu. * **Odzyskiwanie zegara Gadnera** jest zazwyczaj najlepszą opcją, ale nadal musisz podać przybliżoną szybkość symbolu. Po naciśnięciu próbkowania pojawi się to: ![](<../../.gitbook/assets/image (644).png>) Teraz, aby sprawić, żeby SigDigger zrozumiał, **gdzie jest zakres** poziomu przenoszącego informacje, musisz kliknąć na **niższy poziom** i przytrzymać kliknięcie aż do największego poziomu: ![](<../../.gitbook/assets/image (439).png>) Gdyby na przykład było **4 różne poziomy amplitudy**, musiałbyś skonfigurować **Bity na symbol na 2** i wybrać od najmniejszego do największego. Ostatecznie, **zwiększając** **Powiększenie** i **zmieniając Rozmiar wiersza**, możesz zobaczyć bity (i możesz zaznaczyć wszystko i skopiować, aby uzyskać wszystkie bity): ![](<../../.gitbook/assets/image (276).png>) Jeśli sygnał ma więcej niż 1 bit na symbol (na przykład 2), SigDigger **nie ma sposobu, aby wiedzieć, który symbol to** 00, 01, 10, 11, więc użyje różnych **skal szarości** do reprezentacji każdego (i jeśli skopiujesz bity, użyje **liczb od 0 do 3**, będziesz musiał je przetworzyć). Używaj również **kodowań** takich jak **Manchester**, gdzie **góra+dół** może być **1 lub 0**, a **dół+góra** może być 1 lub 0. W tych przypadkach musisz **przetworzyć uzyskane góry (1) i dół (0)**, aby zastąpić pary 01 lub 10 jako 0 lub 1. ## Przykład FM {% file src="../../.gitbook/assets/sigdigger_20220308_170858Z_2560000_433500000_float32_iq.raw" %} ### Odkrywanie FM #### Sprawdzanie częstotliwości i kształtu fali Przykład sygnału wysyłającego informacje zmodulowane w FM: ![](<../../.gitbook/assets/image (725).png>) Na poprzednim obrazie można zauważyć, że **używane są 2 częstotliwości**, ale jeśli **obserwujesz** **kształt fali**, możesz **nie być w stanie poprawnie zidentyfikować 2 różnych częstotliwości**: ![](<../../.gitbook/assets/image (717).png>) Dzieje się tak, ponieważ przechwyciłem sygnał w obu częstotliwościach, dlatego jedna jest mniej więcej przeciwna drugiej: ![](<../../.gitbook/assets/image (942).png>) Jeśli zsynchronizowana częstotliwość jest **bliższa jednej częstotliwości niż drugiej**, można łatwo zobaczyć 2 różne częstotliwości: ![](<../../.gitbook/assets/image (422).png>) ![](<../../.gitbook/assets/image (488).png>) #### Sprawdzanie histogramu Sprawdzając histogram częstotliwości sygnału z informacją, można łatwo zobaczyć 2 różne sygnały: ![](<../../.gitbook/assets/image (871).png>) W tym przypadku, jeśli sprawdzisz **histogram amplitudy**, znajdziesz **tylko jedną amplitudę**, więc **nie może to być AM** (jeśli znajdziesz wiele amplitud, może to być spowodowane utratą mocy sygnału wzdłuż kanału): ![](<../../.gitbook/assets/image (817).png>) A to jest histogram fazy (co bardzo wyraźnie pokazuje, że sygnał nie jest modulowany w fazie): ![](<../../.gitbook/assets/image (996).png>) #### Z IQ IQ nie ma pola do identyfikacji częstotliwości (odległość od centrum to amplituda, a kąt to faza).\ Dlatego, aby zidentyfikować FM, powinieneś **zobaczyć w zasadzie tylko okrąg** na tym wykresie.\ Co więcej, inna częstotliwość jest "reprezentowana" na wykresie IQ przez **przyspieszenie prędkości wzdłuż okręgu** (więc w SysDigger wybierając sygnał, wykres IQ jest wypełniany, jeśli znajdziesz przyspieszenie lub zmianę kierunku na utworzonym okręgu, może to oznaczać, że jest to FM): ![](<../../.gitbook/assets/image (81).png>) ### Uzyskaj Szybkość Symbolu Możesz użyć **tej samej techniki, co w przykładzie AM**, aby uzyskać szybkość symbolu, gdy już znalazłeś częstotliwości przenoszące symbole. ### Uzyskaj Bity Możesz użyć **tej samej techniki, co w przykładzie AM**, aby uzyskać bity, gdy już **znalazłeś, że sygnał jest zmodulowany w częstotliwości** i **szybkość symbolu**.