# Радіо
{% hint style="success" %}
Вивчайте та практикуйте AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Вивчайте та практикуйте GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Підтримайте HackTricks
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на GitHub.
{% endhint %}
## SigDigger
[**SigDigger** ](https://github.com/BatchDrake/SigDigger) є безкоштовним аналізатором цифрових сигналів для GNU/Linux та macOS, призначеним для витягування інформації з невідомих радіосигналів. Він підтримує різноманітні SDR пристрої через SoapySDR і дозволяє регулювати демодуляцію FSK, PSK та ASK сигналів, декодувати аналогове відео, аналізувати сплески сигналів і слухати аналогові голосові канали (все в реальному часі).
### Основна конфігурація
Після встановлення є кілька речей, які ви можете розглянути для налаштування.\
У налаштуваннях (друга вкладка) ви можете вибрати **SDR пристрій** або **вибрати файл** для читання, а також частоту для синхронізації та частоту дискретизації (рекомендується до 2.56Msps, якщо ваш ПК це підтримує)\\
![](<../../.gitbook/assets/image (245).png>)
У поведінці GUI рекомендується активувати кілька речей, якщо ваш ПК це підтримує:
![](<../../.gitbook/assets/image (472).png>)
{% hint style="info" %}
Якщо ви помітили, що ваш ПК не захоплює сигнали, спробуйте вимкнути OpenGL і знизити частоту дискретизації.
{% endhint %}
### Використання
* Просто **захопіть частину сигналу та проаналізуйте її**, утримуючи кнопку "Push to capture" стільки, скільки потрібно.
![](<../../.gitbook/assets/image (960).png>)
* **Тюнер** SigDigger допомагає **захоплювати кращі сигнали** (але він також може їх погіршити). Ідеально почати з 0 і продовжувати **збільшувати**, поки **шум**, що вводиться, не стане **більшим**, ніж **покращення сигналу**, яке вам потрібно).
![](<../../.gitbook/assets/image (1099).png>)
### Синхронізація з радіоканалом
З [**SigDigger** ](https://github.com/BatchDrake/SigDigger)синхронізуйтеся з каналом, який ви хочете почути, налаштуйте опцію "Baseband audio preview", налаштуйте ширину смуги, щоб отримати всю інформацію, що надсилається, а потім встановіть Тюнер на рівень, перед тим як шум почне дійсно зростати:
![](<../../.gitbook/assets/image (585).png>)
## Цікаві трюки
* Коли пристрій надсилає сплески інформації, зазвичай **перша частина буде преамбулою**, тому вам **не потрібно** **турбуватися**, якщо ви **не знайдете інформацію** там **або якщо там є деякі помилки**.
* У кадрах інформації зазвичай ви повинні **знайти різні кадри, добре вирівняні між собою**:
![](<../../.gitbook/assets/image (1076).png>)
![](<../../.gitbook/assets/image (597).png>)
* **Після відновлення бітів вам, можливо, потрібно буде обробити їх якимось чином**. Наприклад, у манчестерській кодуванні підйом+спад буде 1 або 0, а спад+підйом буде іншим. Таким чином, пари 1 і 0 (підйоми та спади) будуть реальним 1 або реальним 0.
* Навіть якщо сигнал використовує манчестерське кодування (неможливо знайти більше ніж два 0 або 1 підряд), ви можете **знайти кілька 1 або 0 разом у преамбулі**!
### Визначення типу модуляції з IQ
Існує 3 способи зберігати інформацію в сигналах: модуляція **амплітуди**, **частоти** або **фази**.\
Якщо ви перевіряєте сигнал, є різні способи спробувати з'ясувати, що використовується для зберігання інформації (знайдіть більше способів нижче), але хороший спосіб - перевірити графік IQ.
![](<../../.gitbook/assets/image (788).png>)
* **Виявлення AM**: Якщо на графіку IQ з'являються, наприклад, **2 кола** (можливо, одне в 0, а інше на іншій амплітуді), це може означати, що це AM сигнал. Це тому, що на графіку IQ відстань між 0 і колом - це амплітуда сигналу, тому легко візуалізувати різні амплітуди, що використовуються.
* **Виявлення PM**: Як у попередньому зображенні, якщо ви знайдете маленькі кола, які не пов'язані між собою, це, ймовірно, означає, що використовується фазова модуляція. Це тому, що на графіку IQ кут між точкою та 0,0 - це фаза сигналу, тому це означає, що використовуються 4 різні фази.
* Зверніть увагу, що якщо інформація прихована в тому, що фаза змінюється, а не в самій фазі, ви не побачите чітко різні фази.
* **Виявлення FM**: IQ не має поля для ідентифікації частот (відстань до центру - це амплітуда, а кут - це фаза).\
Тому, щоб ідентифікувати FM, ви повинні **бачити в основному коло** на цьому графіку.\
Більше того, інша частота "представляється" графіком IQ через **прискорення швидкості по колу** (тому в SysDigger, вибираючи сигнал, графік IQ заповнюється, якщо ви знайдете прискорення або зміну напрямку в створеному колі, це може означати, що це FM):
## Приклад AM
{% file src="../../.gitbook/assets/sigdigger_20220308_165547Z_2560000_433500000_float32_iq.raw" %}
### Визначення AM
#### Перевірка обгортки
Перевіряючи AM інформацію з [**SigDigger** ](https://github.com/BatchDrake/SigDigger)і просто дивлячись на **обгортку**, ви можете побачити різні чіткі рівні амплітуди. Використовуваний сигнал надсилає імпульси з інформацією в AM, ось як виглядає один імпульс:
![](<../../.gitbook/assets/image (590).png>)
І ось як виглядає частина символу з формою хвилі:
![](<../../.gitbook/assets/image (734).png>)
#### Перевірка гістограми
Ви можете **вибрати весь сигнал**, де знаходиться інформація, вибрати режим **Амплітуда** та **Вибір** і натиснути на **Гістограму**. Ви можете спостерігати, що 2 чіткі рівні знаходяться лише
![](<../../.gitbook/assets/image (264).png>)
Наприклад, якщо ви виберете Частоту замість Амплітуди в цьому AM сигналі, ви знайдете лише 1 частоту (немає способу, щоб інформація, модуляція в частоті, використовувала лише 1 частоту).
![](<../../.gitbook/assets/image (732).png>)
Якщо ви знайдете багато частот, це, ймовірно, не буде FM, можливо, частота сигналу була просто змінена через канал.
#### З IQ
У цьому прикладі ви можете побачити, як є **велике коло**, але також **багато точок у центрі.**
![](<../../.gitbook/assets/image (222).png>)
### Отримати символічну частоту
#### З одним символом
Виберіть найменший символ, який ви можете знайти (щоб ви були впевнені, що це лише 1) і перевірте "Вибір частоти". У цьому випадку це буде 1.013kHz (тобто 1kHz).
![](<../../.gitbook/assets/image (78).png>)
#### З групою символів
Ви також можете вказати кількість символів, які ви збираєтеся вибрати, і SigDigger розрахує частоту 1 символу (чим більше символів вибрано, тим краще, ймовірно). У цьому сценарії я вибрав 10 символів, і "Вибір частоти" становить 1.004 Khz:
![](<../../.gitbook/assets/image (1008).png>)
### Отримати біти
Знайшовши, що це **AM модуляційний** сигнал і **символічна частота** (і знаючи, що в цьому випадку щось вгору означає 1, а щось вниз означає 0), дуже легко **отримати біти**, закодовані в сигналі. Отже, виберіть сигнал з інформацією, налаштуйте дискретизацію та рішення і натисніть зразок (перевірте, що **Амплітуда** вибрана, виявлена **Символічна частота** налаштована, а **Відновлення годинника Гаднера** вибрано):
![](<../../.gitbook/assets/image (965).png>)
* **Синхронізація з вибраними інтервалами** означає, що якщо ви раніше вибрали інтервали для знаходження символічної частоти, ця символічна частота буде використана.
* **Ручний** означає, що вказана символічна частота буде використана
* У **Виборі фіксованого інтервалу** ви вказуєте кількість інтервалів, які повинні бути вибрані, і вона розраховує символічну частоту з цього
* **Відновлення годинника Гаднера** зазвичай є найкращим варіантом, але вам все ще потрібно вказати приблизну символічну частоту.
Натискаючи зразок, з'являється:
![](<../../.gitbook/assets/image (644).png>)
Тепер, щоб змусити SigDigger зрозуміти **де знаходиться діапазон** рівня, що несе інформацію, вам потрібно натиснути на **нижній рівень** і утримувати натиснутим до найбільшого рівня:
![](<../../.gitbook/assets/image (439).png>)
Якщо б було, наприклад, **4 різних рівні амплітуди**, вам потрібно було б налаштувати **Біти на символ до 2** і вибрати від найменшого до найбільшого.
Нарешті, **збільшивши** **Масштаб** і **змінивши розмір рядка**, ви можете побачити біти (і ви можете вибрати всі та скопіювати, щоб отримати всі біти):
![](<../../.gitbook/assets/image (276).png>)
Якщо сигнал має більше ніж 1 біт на символ (наприклад, 2), SigDigger **не має способу знати, який символ є** 00, 01, 10, 11, тому він використовуватиме різні **сірі відтінки**, щоб представити кожен (і якщо ви скопіюєте біти, він використовуватиме **числа від 0 до 3**, вам потрібно буде їх обробити).
Також використовуйте **кодування**, такі як **Манчестер**, і **підйом+спад** може бути **1 або 0**, а спад+підйом може бути 1 або 0. У таких випадках вам потрібно **обробити отримані підйоми (1) і спади (0)**, щоб замінити пари 01 або 10 на 0 або 1.
## Приклад FM
{% file src="../../.gitbook/assets/sigdigger_20220308_170858Z_2560000_433500000_float32_iq.raw" %}
### Визначення FM
#### Перевірка частот і форми хвилі
Приклад сигналу, що надсилає інформацію, модуляцію в FM:
![](<../../.gitbook/assets/image (725).png>)
На попередньому зображенні ви можете досить добре спостерігати, що **використовується 2 частоти**, але якщо ви **спостерігаєте** за **формою хвилі**, ви, можливо, не зможете правильно ідентифікувати 2 різні частоти:
![](<../../.gitbook/assets/image (717).png>)
Це тому, що я захопив сигнал на обох частотах, тому одна приблизно є інша в негативі:
![](<../../.gitbook/assets/image (942).png>)
Якщо синхронізована частота **ближча до однієї частоти, ніж до іншої**, ви можете легко побачити 2 різні частоти:
![](<../../.gitbook/assets/image (422).png>)
![](<../../.gitbook/assets/image (488).png>)
#### Перевірка гістограми
Перевіряючи частотну гістограму сигналу з інформацією, ви можете легко побачити 2 різні сигнали:
![](<../../.gitbook/assets/image (871).png>)
У цьому випадку, якщо ви перевірите **Гістограму амплітуди**, ви знайдете **лише одну амплітуду**, тому це **не може бути AM** (якщо ви знайдете багато амплітуд, це може бути через те, що сигнал втратив потужність по каналу):
![](<../../.gitbook/assets/image (817).png>)
І це буде гістограма фази (що чітко показує, що сигнал не модуляційний у фазі):
![](<../../.gitbook/assets/image (996).png>)
#### З IQ
IQ не має поля для ідентифікації частот (відстань до центру - це амплітуда, а кут - це фаза).\
Тому, щоб ідентифікувати FM, ви повинні **бачити в основному коло** на цьому графіку.\
Більше того, інша частота "представляється" графіком IQ через **прискорення швидкості по колу** (тому в SysDigger, вибираючи сигнал, графік IQ заповнюється, якщо ви знайдете прискорення або зміну напрямку в створеному колі, це може означати, що це FM):
![](<../../.gitbook/assets/image (81).png>)
### Отримати символічну частоту
Ви можете використовувати **ту ж техніку, що й у прикладі AM**, щоб отримати символічну частоту, як тільки ви знайдете частоти, що несуть символи.
### Отримати біти
Ви можете використовувати **ту ж техніку, що й у прикладі AM**, щоб отримати біти, як тільки ви **знайдете, що сигнал модуляційний у частоті** і **символічна частота**.
{% hint style="success" %}
Вивчайте та практикуйте AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Вивчайте та практикуйте GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Підтримайте HackTricks
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на GitHub.
{% endhint %}