Перехватываем Цифровую Радиосвязь, Или Куда Идут Экипажи В 5 Утра



Давным-давно, на задворках мира, далеко-далеко.

Это был апрель 2020 года, и пандемия Covid набирала обороты.

Мы с женой, воспользовавшись тем, что оба начали работать полностью удаленно, временно прилетели из Санкт-Петербурга в родной город, чтобы быть поближе к родителям, которым в это трудное время требовалась помощь.

Местные власти объявили «карантин», и от скуки сидеть дома однажды мне пришла в голову идея разобрать мусор в старой квартире.

В одной из коробок мне попался безымянный USB DVB-тюнер на микросхеме RTL2832U с Aliexpress, который я давно заказал за 10 долларов, и тут я задумался.

Я вспомнил, что много-много лет назад играл с ним, и в эфире можно было услышать много интересного.

«Почему бы не поиграть еще разЭ» — в моей голове возникла мысль, положившая начало этой истории.



Перехватываем цифровую радиосвязь, или Куда идут экипажи в 5 утра



Железо

В качестве наблюдательной станции использовались старый ноутбук Lenovo G430, который был найден в том же шкафу, и старый монитор ViewSonic оттуда же (на самом деле, я не перестаю удивляться тому, что можно найти в этом самом шкафу, но это другая история).

Жесткий диск машины умер окончательно и безвозвратно, поэтому в качестве системного хранилища использовалась обычная флешка на 32 гигабайта, с которой вполне неплохо работала родная Windows 8.1. В качестве антенны использовалась обычная телевизионная антенна, здесь все банально.

С одной стороны, это не самая лучшая вещь по тактико-техническим характеристикам и чувствительности, с другой стороны, ее можно купить за 200 рублей в любом магазине электроники или найти бесплатно в том же шкафу, а частота Диапазон таких антенн достаточно широк, от 80 до 800 МГц, что уже дает некоторый простор для экспериментов.



Перехватываем цифровую радиосвязь, или Куда идут экипажи в 5 утра

Антенна и свисток RTL-SDR с алиэкспресса «Круглая часть» антенны (на фото), по логике вещей предназначенная для дециметровых волн, как выяснилось после разборки антенны, на самом деле носила чисто декоративный характер — к ней вообще не было припаяно никакого провода.

Но «усы» действительно работали, в том числе и в дециметровом диапазоне, а подгонка их к размеру, равному половине расчетной длины волны, давала на анализаторе спектра еще несколько децибел в нужном диапазоне.

У меня на стареньком тюнере Elonics E4000 стоял свисток RTL-SDR, который тоже оказал небольшое влияние на происходящее, но об этом позже.



Программное обеспечение и начало работы

Выбор пал на СДР-Тула.

№ СДР (сейчас у них есть версия для .

Net Core, не знаю, совместима ли она со старыми плагинами, но ссылка на версию для .

Net 4.x там тоже есть).

Все началось с установки программного обеспечения, базовой настройки и тестирования.

Установка драйверов для свистка производилась по стандартной инструкции с помощью прилагаемой утилиты Zadig и не вызвала никаких проблем.



Перехватываем цифровую радиосвязь, или Куда идут экипажи в 5 утра

Проверка работоспособности свистка (многие говорят, что эти свистки легко умирают из-за статических разрядов антенны) сводилась к простой вещи: что он вещает всегда, на известных частотах и с хорошим уровнем сигнала? FM-радиостанции! Поэтому, повернув шкалу в нужный диапазон, я ткнул на самый сильный сигнал на спектрометре, и мне пришлось полминуты слушать, как какой-то парень хриплым голосом пел трагическую историю об одном социально безответственном типе, для которого «Засияла звезда Магадана».

Убедившись, что всё работает как надо, я отправился изучать радиоэфир родного города.

В радиусе действия ничего интересного не было, то ли потому, что я находился слишком далеко от аэропорта, то ли потому, что в этот момент мимо пролетающих самолетов просто не было (я как-то не додумался посмотреть Flightradar24).

Немного послушав охранников торгового центра неподалеку, я пошел рыскать воздух дальше.

И так, в одном частотном диапазоне я услышал что-то похожее на звук модема, но характер передачи (короткие отрезки по 3-10 секунд с длинными паузами) указывал на то, что это скорее всего голосовая связь, только цифровая.

кодировка.

Это означает, что нам нужно попытаться его расшифровать, что мы и сделаем.



Перехватываем цифровую радиосвязь, или Куда идут экипажи в 5 утра



Декодирование

Есть программа для декодирования цифровых форматов передачи DSDPlus .

Он существует в разных воплощениях: публичная версия 1.101, вышедшая в 2015 году и с тех пор не обновлявшаяся, и более новые ее версии распространяются только среди владельцев платной подписки (10$ в год, 25$ навсегда), хотя и одна из относительно последние версии можно легко загрузить с раздел скачать с известного радиолюбительского сайта Однако вопрос о моральной и правовой стороне такого дела остается открытым.

DSDPlus может интегрироваться с SDR# двумя способами.

Первый способ классический: в Windows устанавливается так называемый Virtual Audio Cable, который регистрирует в системе дополнительное мультимедийное устройство для записи и воспроизведения звука и создает между ними «мост».

SDR# выводит радиозвук на VAC, а DSDPlus на другой стороне VAC слушает звук и декодирует его.

Я протестировал два типа программного обеспечения VAC, первый https://vb-audio.com/Cable/ и второй в https://vac.muzychenko.net /, оба работают вообще без проблем.

Второй способ: обходимся без велосипедов, SDR# будет лить поток напрямую в DSDPlus на локальном хосте по TCP. Итак.

Публичная версия 1.101 достаточно хорошо работает с TCP, в более новых версиях протокол изменился, и автор DSDPlus не поделился его описанием с разработчиком плагина SDR#, так что если вы используете более новую версию DSDPlus, сделать это можно только через виртуальный аудиокабель.

Жаль.

Итак, если мы используем DSDPlus через аудиоустройство, то будет удобно использовать Плагин интерфейса DSD для SDR# (есть инструкция здесь ).

Если работаем по TCP, то плагин обязательно нужен, и называется он ДСДТкп .

Плагины устанавливаются путем закидывания их в папку SDR# и записи DLL в файл Plugins.xml. Сам DSDPlus тоже должен быть где-то рядом.

Плагин предоставляет интерфейс конфигурации DSDPlus, который выглядит примерно так:

Перехватываем цифровую радиосвязь, или Куда идут экипажи в 5 утра

Первый шаг — указать путь к исполняемому файлу DSDPlus. Если вы работаете через виртуальный кабель, то указываются индексы (порядковые номера) аудиоустройств на входе и выходе.

Вы их, скорее всего, не знаете, поэтому просто запустите DSDPlus вручную и посмотрите, что он пишет в консоль — там будет список системных аудиоустройств с их номерами, это поможет выставить правильные настройки:

Перехватываем цифровую радиосвязь, или Куда идут экипажи в 5 утра

Также есть настройки записи файлов (и с этим связан один странный баг, но об этом позже).

На второй вкладке можно оставить все по умолчанию, поскольку мы еще не знаем, какой тип радиосигнала будем слушать:

Перехватываем цифровую радиосвязь, или Куда идут экипажи в 5 утра

Не забывай Обязательно Нажмите «Создать командную строку», иначе ничего не сохранится.

Если DSDPlus жалуется на нераспознанные аргументы командной строки при запуске, просто удалите их.

Мне помогло, ничего не сломалось :) После этого запускаем DSDPlus кнопкой от плагина, и если все сделано правильно, то как только начнется передача и SDR# начнет принимать радиосигнал, в окне DSDPlus запустятся логи, и мы услышим декодированный звук из спикеров:

Перехватываем цифровую радиосвязь, или Куда идут экипажи в 5 утра

Казалось бы, счастливый конец? Нет, совсем нет. Очень скоро я заметил, что переговоры «прыгают» по частотам.

Несколько секунд на одной частоте, через полминуты следующий сеанс связи был на другой и так далее, и таких частот было почти десяток.

Знающие люди, наверное, прочитав это, поняли, в чем дело, но в тот момент я понял, что мне нужен сканер частоты.



Сканирование

И был такой плагин для SDR#.

Точнее, есть два плагина.

Первый - частотный менеджер со сканером : вы вводите в список интересующие вас частоты, и он перебирает их одну за другой, проверяя, есть ли передача.

Второй - а именно сканер с частотным поиском , он наблюдает широкий спектр, и как только сигнал появляется на одной из частот выше определенного уровня в течение определенного времени, он переключается на эту частоту, и при этом ведет статистику времен передачи для разных частот. Это именно то, что я использовал.

Пропускная способность моего RTL-SDR позволяла мне стоять как раз «посередине» нужного диапазона, чтобы я мог охватить все интересующие частоты без настройки тюнера.

Интерфейс сканера выглядит примерно так:

Перехватываем цифровую радиосвязь, или Куда идут экипажи в 5 утра

С помощью кнопок вверх и вниз вы можете установить уровень срабатывания сканера – если сигнал находится на некоторой частоте выше этого уровня, сканер переключится на эту частоту.

Все, что ниже заданного уровня, считается шумом.

Двойным щелчком мыши по полосе частот вы также можете добавить его в список игнорируемых.

В сканере есть дополнительное окно настроек, можно настроить, например, автоматический пропуск каналов, активность на которых длится слишком долго или даже добавление таких каналов в список исключений, автоматическое удаление из списка каналов, на которых было слишком мало разговоров и т.д. .



Перехватываем цифровую радиосвязь, или Куда идут экипажи в 5 утра



Записывать

Я не сижу за компьютером 24/7, но было очень интересно узнать, о чем говорили в эфире в мое отсутствие.

Соответственно, встал вопрос о записи.

Первая идея была проста: устанавливаем еще один виртуальный аудиокабель и перенаправляем аудиовыход DSDPlus на какую-нибудь программу-рекордер.

Правда, как оказалось, было очень сложно последовательно найти программу-рекордер, отвечающую простому набору требований: она могла записывать сразу в mp3 или ogg и могла автоматически разбивать запись на файлы, когда в звуке были паузы дольше.

чем определенное количество секунд. Подходит хорошо Студия записи MP3 , если бы не одно НО - это условно-бесплатная версия, бесплатная версия ограничена записью 30 секунд, а когда переговоры длились более 30 секунд без пауз, то программа выплюнула окно с предложением купить платную версию и запись прекращалась, приходилось перезапускать ее вручную, что, конечно, было недопустимо.

От покупки полной версии меня остановило то, что на сайте разработчика можно было купить не одну программу, а всего лишь целый пакет из кучи утилит за 60 долларов, и тогда меня, честно говоря, задушила жаба.

И тут мне пришло в голову очевидное: в DSDPlus есть встроенная функция записи.

Но и здесь не все так гладко.

Публичная версия DSDPlus 1.101 имеет очень странную ошибку при записи в MP3: кажется, что запись ведется с 2-кратным ускорением.

И это не неправильная частота дискретизации, а скорее ускорение: частота дискретизации самого файла составляет 8000 герц, а при изменении скорости файла на нормальную в аудиоредакторе частоты фактически снова режутся вдвое - хотя речь до сих пор внятно, слушать это очень неприятно.

Эта ошибка исправлена в закрытой версии DSDPlus. А для пользователей публичной версии есть простой выход: записать трансляцию в несжатые WAV-файлы и настроить периодический запуск .

bat или powershell-скрипта, который установит на них кодировщик LAME или OGG и удалит оригиналы.

DSDPlus также может разбивать запись на файлы, чтобы не превышать определенную продолжительность, и записывать в отдельный файл таймкоды о том, в какое именно время и где именно была сделана запись.

Правда, в качестве формата файла почему-то был выбран .

srt — в этом формате, например, часто хранятся субтитры к фильмам и сериалам.

Мне это было не очень удобно, поэтому за один вечер я набросал небольшую утилиту, которая конвертирует эти .

srt файлы из DSDPlus в обычные CUE Sheets, группируя записи по длине пауз между ними, и в результате записанные Длинный файл wav/mp3 можно легко разделить на отдельные файлы с помощью какой-либо программы разделения аудио, например, mp3splt. Утилита может быть украдена с моего Github: https://github.com/uprt/srt2cue Написано, как я уже говорил, за один вечер и чисто для себя, поэтому код местами кривоват, но работает. Ставьте звезды, отправляйте запросы на включение, да.



Какой путь был правильным?

На самом деле то, с чем я столкнулся, это не просто цифровая, но и транкинговая связь.

Если очень просто, в эфире, помимо ряда голосовых каналов, есть специальный служебный канал, и когда кто-то выходит на связь, туда передается информация о том, на какой частоте ведется передача.

Я, по сути, отказался от этого, просто прикрутив сканер частоты к SDR#, но если вы хотите узнать, как это сделать правильно, то читайте дальше.

Для работы с транкинговой цифровой связью существует специальное программное обеспечение: ЮниТранкер .

Он просто умеет слушать и декодировать служебный канал и понимать, на какую частоту ему нужно перестроиться в конкретный момент времени.

Подробное руководство можно найти здесь .

Он может работать по-разному:

  1. У вас есть 2 приемника RTL-SDR, один слушает служебный канал, другой настроен на нужную частоту для приема.

  2. И служебный, и голосовой каналы укладываются в принимаемую полосу пропускания вашего ресивера — тогда можно обойтись всего одним свистком RTL-SDR. Вывод можно отправить в DSDPlus тем же способом, хотя я видел упоминания о том, что новые версии юнитранкера могут сами декодировать голос (но я могу ошибаться).

Почему я этим не воспользовался? У меня был тюнер на старом чипе Elonics E4000, но UniTrunker умеет работать только с более новыми ресиверами на базе R820T. Однако решение все же было.

Например, я наткнулся на диаграмму, когда - или запускаются сразу два SDR# с двумя тюнерами, один из которых слушает служебный канал, а второй настроен на голос; - или когда запускается один SDR# но со специальным плагином, который позволяет ему настраиваться сразу на две частоты в пределах диапазона тюнера, выводя оба сигнала на разные аудиоустройства и передавая звук с одной частоты через виртуальный аудиокабель в UniTrunker, и звук с другого на DSDPlus. В этих схемах UniTrunker должен каким-то образом сообщить SDR#, на какую частоту ему нужно перестроиться, и для этого существует специальный плагин.

Сайт плагина давно умер, но слава web.archive.org ( время соединения , ссылка два ).

А сам плагин остаётся на github: https://github.com/walczakp/serial-controller .

По какой-то причине разработчик выбрал виртуальный COM-порт для связи UniTrunker и SDR#.

Я, конечно, не очень понимаю почему (что мешало мне использовать тот же TCP-сокет?), но видимо я именно этого и хотел:)

Что ты можешь услышать

Вопрос, который, наверное, интересует каждого: что там можно услышать? Да, много разных вещей.

Для меня главным интересом были переговоры местного ГИБДД.

Обычно там все было вполне стандартно: стоишь на горе и высматриваешь злоумышленников, передавая номера и знаки экипажу, стоящему чуть ниже; сообщения о различных несчастных случаях; классика «вот на мосту забыли включить реверсивное движение, светофор уже два часа неправильно горит» и тому подобное.

Правда, пару раз нам удалось наткнуться на живые погони, когда очередной лихач на дорогой машине не остановился по требованию сотрудников ГИБДД и в итоге его преследовали через весь город. Конец оказался не героическим: у одной полицейской машины закончился бензин, а злоумышленник ушел от другой машины через сельскохозяйственные поля в пригороде.

Учитывая, что он был на «Ленд Крузере», а его преследователи были в чем-то легком, то это, в принципе, неудивительно.

Потом выяснилось, что совсем рядом, на соседней частоте, сидели и другие представители правоохранительных органов.

Их разговоры слышишь редко, но, в принципе, послушать тоже интересно.

То школьники разбили ночью стекло в винном магазине, то наркоман выломал топором дверь чьей-то квартиры, то жители дома устроили массовую драку из-за "чужого" парковочного места во дворе.

В общем, нормальная жизнь в российском провинциальном городке.



Юридическая оговорка

И самый главный вопрос: законно ли это? Долгое время существовал проект под названием ДПС-ФМ, который занимался ничем иным, как трансляцией переговоров ГИБДД Санкт-Петербурга в Интернете.

Они изучали российское законодательство и сделал простой вывод: в законах нет явного запрета на прослушивание радиосообщений, передаваемых в открытом (не зашифрованном) виде, следовательно, оно разрешено.

Более того, ребята даже сделали запрос в Роскомнадзор о законности такой деятельности и получили следующий ответ:

Перехватываем цифровую радиосвязь, или Куда идут экипажи в 5 утра

Другое дело, что на некоторых радиолюбительских форумах я встречал упоминания о том, что публиковать конкретные частоты, на которых услышал что-то интересное, незаконно.

Обоснование было простым: в ряде документов правоохранительных органов эти частоты указаны в документах «для служебного пользования», и если «раскрыть» эту информацию, могут возникнуть проблемы.

С одной стороны это надуманно, но с другой стороны не забывайте, что это все-таки Россия и от государства можно ожидать чего угодно, лучше не ходить по тонкому льду.

Ну и последний вопрос о моральной составляющей вопроса.

Я считаю, что это хорошо и правильно.

Переговоры изначально передаются в открытом и незашифрованном виде — если бы их пришлось скрыть от наблюдателей, они бы были зашифрованы.

Граждане имеют конституционное право на свободу получать и распространять информацию.

В конце концов, это общественный контроль над структурами, которые работают на налоги граждан и должны работать на благо граждан.

Удачных радиоисследований! Теги: #информационная безопасность #Беспроводные технологии #Гаджеты #СДР #Развитие систем связи #стандарты связи #радио #антенны #rtl #rtl-sdr #p25

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.