mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
203 lines
16 KiB
Markdown
203 lines
16 KiB
Markdown
# Radio
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|
||
|
||
## SigDigger
|
||
|
||
[**SigDigger** ](https://github.com/BatchDrake/SigDigger) є безкоштовним аналізатором цифрових сигналів для GNU/Linux та macOS, призначеним для витягування інформації з невідомих радіосигналів. Він підтримує різноманітні SDR пристрої через SoapySDR і дозволяє регулювати демодуляцію FSK, PSK та ASK сигналів, декодувати аналогове відео, аналізувати сплескові сигнали та слухати аналогові голосові канали (все в реальному часі).
|
||
|
||
### Basic Config
|
||
|
||
Після встановлення є кілька речей, які ви можете розглянути для налаштування.\
|
||
У налаштуваннях (друга кнопка вкладки) ви можете вибрати **SDR пристрій** або **вибрати файл** для читання та частоту для синхронізації, а також частоту дискретизації (рекомендується до 2.56Msps, якщо ваш ПК це підтримує)
|
||
|
||
.png>)
|
||
|
||
У поведінці GUI рекомендується активувати кілька речей, якщо ваш ПК це підтримує:
|
||
|
||
.png>)
|
||
|
||
> [!NOTE]
|
||
> Якщо ви помітили, що ваш ПК не захоплює сигнали, спробуйте вимкнути OpenGL і знизити частоту дискретизації.
|
||
|
||
### Uses
|
||
|
||
- Просто **захопити деякий час сигналу та проаналізувати його**, просто утримуйте кнопку "Push to capture" стільки, скільки потрібно.
|
||
|
||
.png>)
|
||
|
||
- **Тюнер** SigDigger допомагає **захоплювати кращі сигнали** (але він також може їх погіршити). Ідеально почати з 0 і продовжувати **збільшувати**, поки ви не знайдете, що **шум**, який ви вводите, є **більшим**, ніж **покращення сигналу**, яке вам потрібно.
|
||
|
||
.png>)
|
||
|
||
### Synchronize with radio channel
|
||
|
||
З [**SigDigger** ](https://github.com/BatchDrake/SigDigger) синхронізуйтеся з каналом, який ви хочете почути, налаштуйте опцію "Baseband audio preview", налаштуйте ширину смуги, щоб отримати всю інформацію, що надсилається, а потім встановіть Тюнер на рівень, перед тим як шум почне дійсно зростати:
|
||
|
||
.png>)
|
||
|
||
## Interesting tricks
|
||
|
||
- Коли пристрій надсилає сплески інформації, зазвичай **перша частина буде преамбулою**, тому вам **не потрібно** **турбуватися**, якщо ви **не знайдете інформацію** там **або якщо там є деякі помилки**.
|
||
- У кадрах інформації ви зазвичай повинні **знайти різні кадри, добре вирівняні між собою**:
|
||
|
||
.png>)
|
||
|
||
.png>)
|
||
|
||
- **Після відновлення бітів вам, можливо, потрібно буде обробити їх якимось чином**. Наприклад, у манчестерській кодуванні up+down буде 1 або 0, а down+up буде іншим. Таким чином, пари 1s і 0s (ups і downs) будуть реальним 1 або реальним 0.
|
||
- Навіть якщо сигнал використовує манчестерське кодування (неможливо знайти більше ніж два 0s або 1s підряд), ви можете **знайти кілька 1s або 0s разом у преамбулі**!
|
||
|
||
### Uncovering modulation type with IQ
|
||
|
||
Існує 3 способи зберігати інформацію в сигналах: модуляція **амплітуди**, **частоти** або **фази**.\
|
||
Якщо ви перевіряєте сигнал, є різні способи спробувати з'ясувати, що використовується для зберігання інформації (знайдіть більше способів нижче), але хороший спосіб - перевірити графік IQ.
|
||
|
||
.png>)
|
||
|
||
- **Виявлення AM**: Якщо на графіку IQ з'являються, наприклад, **2 кола** (можливо, одне в 0, а інше на іншій амплітуді), це може означати, що це AM сигнал. Це тому, що на графіку IQ відстань між 0 і колом є амплітудою сигналу, тому легко візуалізувати різні амплітуди, що використовуються.
|
||
- **Виявлення PM**: Як на попередньому зображенні, якщо ви знайдете маленькі кола, які не пов'язані між собою, це, ймовірно, означає, що використовується фазова модуляція. Це тому, що на графіку IQ кут між точкою та 0,0 є фазою сигналу, тому це означає, що використовуються 4 різні фази.
|
||
- Зверніть увагу, що якщо інформація прихована в тому, що фаза змінюється, а не в самій фазі, ви не побачите чітко різні фази.
|
||
- **Виявлення FM**: IQ не має поля для ідентифікації частот (відстань до центру - це амплітуда, а кут - це фаза).\
|
||
Тому, щоб ідентифікувати FM, ви повинні **бачити в основному коло** на цьому графіку.\
|
||
Більше того, інша частота "представляється" графіком IQ через **прискорення швидкості по колу** (тому в SysDigger, вибираючи сигнал, графік IQ заповнюється, якщо ви знайдете прискорення або зміну напрямку в створеному колі, це може означати, що це FM):
|
||
|
||
## AM Example
|
||
|
||
{{#file}}
|
||
sigdigger_20220308_165547Z_2560000_433500000_float32_iq.raw
|
||
{{#endfile}}
|
||
|
||
### Uncovering AM
|
||
|
||
#### Checking the envelope
|
||
|
||
Перевіряючи AM інформацію з [**SigDigger** ](https://github.com/BatchDrake/SigDigger) і просто дивлячись на **оболонку**, ви можете побачити різні чіткі рівні амплітуди. Використовуваний сигнал надсилає імпульси з інформацією в AM, ось як виглядає один імпульс:
|
||
|
||
.png>)
|
||
|
||
І ось як виглядає частина символу з формою хвилі:
|
||
|
||
.png>)
|
||
|
||
#### Checking the Histogram
|
||
|
||
Ви можете **вибрати весь сигнал**, де знаходиться інформація, вибрати режим **Амплітуда** та **Вибір** і натиснути на **Гістограму**. Ви можете спостерігати, що 2 чіткі рівні знаходяться лише
|
||
|
||
.png>)
|
||
|
||
Наприклад, якщо ви виберете Частоту замість Амплітуди в цьому AM сигналі, ви знайдете лише 1 частоту (немає способу, щоб інформація, модуляція в частоті, використовувала лише 1 частоту).
|
||
|
||
.png>)
|
||
|
||
Якщо ви знайдете багато частот, це, ймовірно, не буде FM, ймовірно, частота сигналу була просто змінена через канал.
|
||
|
||
#### With IQ
|
||
|
||
У цьому прикладі ви можете побачити, як є **велике коло**, але також **багато точок у центрі**.
|
||
|
||
.png>)
|
||
|
||
### Get Symbol Rate
|
||
|
||
#### With one symbol
|
||
|
||
Виберіть найменший символ, який ви можете знайти (щоб ви були впевнені, що це лише 1) і перевірте "Selection freq". У цьому випадку це буде 1.013kHz (тобто 1kHz).
|
||
|
||
.png>)
|
||
|
||
#### With a group of symbols
|
||
|
||
Ви також можете вказати кількість символів, які ви збираєтеся вибрати, і SigDigger розрахує частоту 1 символу (чим більше символів вибрано, тим краще, ймовірно). У цьому сценарії я вибрав 10 символів, і "Selection freq" становить 1.004 Khz:
|
||
|
||
.png>)
|
||
|
||
### Get Bits
|
||
|
||
Знайшовши, що це **AM модуляційний** сигнал і **символьна частота** (і знаючи, що в цьому випадку щось up означає 1, а щось down означає 0), дуже легко **отримати біти**, закодовані в сигналі. Отже, виберіть сигнал з інформацією та налаштуйте дискретизацію та рішення, а потім натисніть зразок (перевірте, що **Амплітуда** вибрана, виявлена **Символьна частота** налаштована, а **Gadner clock recovery** вибрана):
|
||
|
||
.png>)
|
||
|
||
- **Sync to selection intervals** означає, що якщо ви раніше вибрали інтервали для знаходження символної частоти, ця символна частота буде використана.
|
||
- **Manual** означає, що вказана символна частота буде використана
|
||
- У **Fixed interval selection** ви вказуєте кількість інтервалів, які повинні бути вибрані, і вона розраховує символну частоту з цього
|
||
- **Gadner clock recovery** зазвичай є найкращим варіантом, але вам все ще потрібно вказати приблизну символну частоту.
|
||
|
||
Натискаючи зразок, з'являється це:
|
||
|
||
.png>)
|
||
|
||
Тепер, щоб змусити SigDigger зрозуміти **де знаходиться діапазон** рівня, що несе інформацію, вам потрібно натиснути на **нижній рівень** і утримувати натиснутим до найбільшого рівня:
|
||
|
||
.png>)
|
||
|
||
Якщо б, наприклад, було **4 різні рівні амплітуди**, вам потрібно було б налаштувати **Біти на символ 2** і вибрати від найменшого до найбільшого.
|
||
|
||
Нарешті, **збільшуючи** **Масштаб** і **змінюючи розмір рядка**, ви можете побачити біти (і ви можете вибрати всі та скопіювати, щоб отримати всі біти):
|
||
|
||
.png>)
|
||
|
||
Якщо сигнал має більше ніж 1 біт на символ (наприклад, 2), SigDigger **не має способу знати, який символ є** 00, 01, 10, 11, тому він використовуватиме різні **сірі відтінки**, щоб представити кожен (і якщо ви скопіюєте біти, він використовуватиме **числа від 0 до 3**, вам потрібно буде їх обробити).
|
||
|
||
Також використовуйте **кодування**, такі як **Манчестер**, і **up+down** може бути **1 або 0**, а down+up може бути 1 або 0. У таких випадках вам потрібно **обробити отримані ups (1) і downs (0)**, щоб замінити пари 01 або 10 на 0s або 1s.
|
||
|
||
## FM Example
|
||
|
||
{{#file}}
|
||
sigdigger_20220308_170858Z_2560000_433500000_float32_iq.raw
|
||
{{#endfile}}
|
||
|
||
### Uncovering FM
|
||
|
||
#### Checking the frequencies and waveform
|
||
|
||
Приклад сигналу, що надсилає інформацію, модуляцію в FM:
|
||
|
||
.png>)
|
||
|
||
На попередньому зображенні ви можете досить добре спостерігати, що **використовується 2 частоти**, але якщо ви **спостерігаєте** за **формою хвилі**, ви, можливо, **не зможете правильно ідентифікувати 2 різні частоти**:
|
||
|
||
.png>)
|
||
|
||
Це тому, що я захопив сигнал на обох частотах, тому одна приблизно є негативною іншої:
|
||
|
||
.png>)
|
||
|
||
Якщо синхронізована частота **ближча до однієї частоти, ніж до іншої**, ви можете легко побачити 2 різні частоти:
|
||
|
||
.png>)
|
||
|
||
.png>)
|
||
|
||
#### Checking the histogram
|
||
|
||
Перевіряючи гістограму частот сигналу з інформацією, ви можете легко побачити 2 різні сигнали:
|
||
|
||
.png>)
|
||
|
||
У цьому випадку, якщо ви перевірите **Гістограму амплітуди**, ви знайдете **лише одну амплітуду**, тому це **не може бути AM** (якщо ви знайдете багато амплітуд, це може бути через те, що сигнал втратив потужність по каналу):
|
||
|
||
.png>)
|
||
|
||
А це була б гістограма фази (яка чітко показує, що сигнал не модуляційний у фазі):
|
||
|
||
.png>)
|
||
|
||
#### With IQ
|
||
|
||
IQ не має поля для ідентифікації частот (відстань до центру - це амплітуда, а кут - це фаза).\
|
||
Тому, щоб ідентифікувати FM, ви повинні **бачити в основному коло** на цьому графіку.\
|
||
Більше того, інша частота "представляється" графіком IQ через **прискорення швидкості по колу** (тому в SysDigger, вибираючи сигнал, графік IQ заповнюється, якщо ви знайдете прискорення або зміну напрямку в створеному колі, це може означати, що це FM):
|
||
|
||
.png>)
|
||
|
||
### Get Symbol Rate
|
||
|
||
Ви можете використовувати **ту ж техніку, що й у прикладі AM**, щоб отримати символну частоту, як тільки ви знайдете частоти, що несуть символи.
|
||
|
||
### Get Bits
|
||
|
||
Ви можете використовувати **ту ж техніку, що й у прикладі AM**, щоб отримати біти, як тільки ви **знайдете, що сигнал модуляційний у частоті** і **символьна частота**.
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|