Декодирование протокола DECT с HackRF One и GR-DECT2

В данном форуме можно обсудить и найти информацию о SDR, в том числе о HackRF One, RTL-SDR и подобных устройствах, а также о программах SDRSharp, SDR Console и других
Ответить
Аватара пользователя

Автор темы
DesignerMix
Администратор
Администратор
Сообщения: 4492
Зарегистрирован: 25 апр 2014, 10:51
Есть ответ: 172
Репутация: 551
Откуда: Белгород
Контактная информация:
Статус: Не в сети

Декодирование протокола DECT с HackRF One и GR-DECT2

Сообщение DesignerMix » 26 фев 2016, 14:57


В ролике ниже продемонстрирован пример работы с GR-DECT2 с HackRF One.



Для начала приведу перевод краткого описания сделанного автором проекта gr-dect2 по декодированию протокола DECT:

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

Использование данного проекта для подслушивания телефонных переговоров может быть нелегальным в некоторых странах.



Ну а теперь давайте переведем технические требования составленные автором (это кстати pavelyazev):

DECT работает в диапазоне 1880 - 1900 МГц и занимает десять каналов начиная с 1881.792 МГц до 1897.344 МГц. Поэтому для того, чтобы принять цифровую потоковую передачу DECT необходимо соответствующее оборудование. Данный проект был разработан и тестировался с помощью USRP2 совместно с WBX daughterboard а также с USRP B200 (от переводчика - это все аппаратные SDR)

Также проект должен работать с другими SDR устройствами которые могут работать с диапазоном 1880 - 1900 МГц и обеспечивать частоту дискретизации как минимум в два раза превышающую скорость передачи данных DECT (а это 1152000 бит). Но возможно потребуются внести корректива в проект.

Как источник DECT при тестировании была использована радионяня Motorola MBP12.

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


Вот так выглядит сигнал DECT на водопаде (прием осуществлялся на HackRF One и антенну от Wi-Fi роутера):

DECT вид на водопаде.jpg


Ну а теперь когда все немного прояснилось давайте разберемся как устанавливать GR-DECT2 на Linux и как его запускать с использованием HackRF One. Я все тестировал на Lunux Ubuntu 15.10 и далее все буду расписывать именно на этом примере, но уверен что все запустится и на других дистрибутивах.

Устанавливаем GIT (если еще не установлен):

Код: Выделить всё

sudo apt-get install git


Так как для работы GR-DECT2 c HackRF One требуются GNURadio с gr-osmocom а также все прочие компоненты, то устанавливаем их самым простым известным мне способом - с помощью скрипта PYBombs:

Клонируем GIT скрипта PYBombs:

Код: Выделить всё

git clone https://github.com/pybombs/pybombs.git


Переходим в папку PYBombs появившуюся в домашней директории:

Код: Выделить всё

cd pybombs


Устанавливаем PYBombs:

Код: Выделить всё

sudo python setup.py install


Загружаем "рецепты" установки GR-компонетов:

Код: Выделить всё

sudo pybombs recipes add gr-recipes git+https://github.com/gnuradio/gr-recipes.git

Код: Выделить всё

sudo pybombs recipes add gr-etcetera git+https://github.com/gnuradio/gr-etcetera.git


Указываем префикс для установки всех необходимых пакетов (-a это просто название для префикса, его можно не указывать):

Код: Выделить всё

sudo pybombs prefix init /usr/local/ -a gr-comp


Устанавливаем GNURadio:

Код: Выделить всё

sudo pybombs -p gr-comp install gnuradio


Устанавливаем gr-osmosdr и соответственно все блоки и источники для GNURadio что-бы работать с поддерживаемыми SDR-устройствами:

Код: Выделить всё

sudo pybombs -p gr-comp install gr-osmosdr


На всякий случай выполняем:

Код: Выделить всё

sudo ldconfig


Теперь у нас все готово и теперь можно наконец установить GR-DECT2:

Клонируем git проекта:

Код: Выделить всё

git clone git://github.com/pavelyazev/gr-dect2.git


Переходим из корня домашнего раздела в папку gr-dect2:

Код: Выделить всё

cd gr-dect2/


Создаем папку build и переходим в нее:

Код: Выделить всё

mkdir build && cd build


Выполняем скрипт из директории уровнем выше:

Код: Выделить всё

cmake ../



Запускаем установку:

Код: Выделить всё

sudo make install


И еще раз настраиваем привязку динамических ссылок:

Код: Выделить всё

sudo ldconfig


На этом установка закончена и можно запускать grc-файл dect2.grc находящийся в папке в корне домашней директории gr-dect2/grc. Но как вы уже поняли данный файл заточен на работу с USRP а не с HackRF и прочими SDR. Поэтому я переделал этот файл для работы с HackRF One (также он по идее должен сработать и с RTL-SDR) и вы можете скачать его из вложения.

dect2_hackrf.grc.zip
GRC-файл DECT2 для работы с HackRF One
(3.34 КБ) 326 скачиваний


Для запуска скрипта необходимо просто перейти в папку где находится нужный вам grc-файл. Например если файл лежит в папке gr-dect2/grc то для выполнения нужно находясь в терминале в корне домашней директории перейти в папку командой:

Код: Выделить всё

cd gr-dect2/grc


И открыть файл программой gnuradio-companion командой:

Код: Выделить всё

gnuradio-companion dect2_hackrf.grc


После этого откроется окно где будет отображен flow-graph который занимается декодированием DECT. Нажмите на зеленый треугольник и flow-graph выполнится после чего появится окно в котором можно будет настроить усиление IF gain и BB gain а также выбрать канал работы DECT из верхнего выпадающего меню и нужную часть передачи из нижнего выпадающего меню.

А в этой теме можно найти информацию по декодированию GSM также с использованием HackRF One - http://dmyt.ru/forum/viewtopic.php?f=64&t=1369


willi289
Постоянный пользователь
Сообщения: 114
Зарегистрирован: 22 янв 2016, 11:59
Репутация: 4
Статус: Не в сети

Декодирование протокола DECT с HackRF One и GR-DECT2

Сообщение willi289 » 29 фев 2016, 06:01


DesignerMix, спасибо!


Nik90
Интересующийся
Сообщения: 35
Зарегистрирован: 01 мар 2016, 19:30
Репутация: 8
Статус: Не в сети

Декодирование протокола DECT с HackRF One и GR-DECT2

Сообщение Nik90 » 03 мар 2016, 23:41


По аналогии с DECT на GitHub есть внешне "похожий" репозиторий по работе с CDMA (https://github.com/anastas/gr-cdma). В инструкции все понятно по его установке и запуску. И вот возник вопрос, а способен ли он на прием и декодирование сигналов CDMA-2000. Попробовал принять реальный сигнал cdma-2000, заменив в файле "receive" cdma_rx.grc источник с USRP на RTL, настроил его на 466 МГц, полосу в 1,24 (пробовал и больше, и меньше по аналогии с USRP) а в ответ - "мол не правильные пакеты". Может кто-нибудь продвинулся дальше в освоении CDMA?? До чего-нибудь докопался??? У меня даже возникла мысль, что это своего рода виртуальный тренажер,моделирующий работу стандарта (типа - "Урок 1" - генерация и передача радиосигнала, "Урок 2" - прием и декодирование переданного радиосигнала, "Урок 3" - а давайте одновременно с двумя устройствами).


willi289
Постоянный пользователь
Сообщения: 114
Зарегистрирован: 22 янв 2016, 11:59
Репутация: 4
Статус: Не в сети

Декодирование протокола DECT с HackRF One и GR-DECT2

Сообщение willi289 » 09 мар 2016, 05:50


DesignerMix, а как выглядит сигнал на водопаде? видел всплески сразу на нескольких частотах

Аватара пользователя

Автор темы
DesignerMix
Администратор
Администратор
Сообщения: 4492
Зарегистрирован: 25 апр 2014, 10:51
Есть ответ: 172
Репутация: 551
Откуда: Белгород
Контактная информация:
Статус: Не в сети

Декодирование протокола DECT с HackRF One и GR-DECT2

Сообщение DesignerMix » 09 мар 2016, 08:26


willi289, добавил скриншот в первое сообщение темы

Аватара пользователя

Автор темы
DesignerMix
Администратор
Администратор
Сообщения: 4492
Зарегистрирован: 25 апр 2014, 10:51
Есть ответ: 172
Репутация: 551
Откуда: Белгород
Контактная информация:
Статус: Не в сети

Декодирование протокола DECT с HackRF One и GR-DECT2

Сообщение DesignerMix » 09 мар 2016, 22:39


В шапку темы добавлено короткое видео где я все продемонстрировал на практике (кроме установки).


Профис
Новичок
Сообщения: 16
Зарегистрирован: 18 фев 2016, 22:25
Репутация: 2
Статус: Не в сети

Декодирование протокола DECT с HackRF One и GR-DECT2

Сообщение Профис » 12 мар 2016, 19:13


К сожалению, как бы мне не хотелось, но SDR свисток не может словить частоты DECT ибо скорее всего чип не позволяет. На какой канал я ни переключусь (в gr-dect), в терминале и логе gnuradio появляется ошибка

Код: Выделить всё

[R82XX] No valid PLL values for 1899186000 Hz!
r82xx_set_freq: failed=-1


willi289
Постоянный пользователь
Сообщения: 114
Зарегистрирован: 22 янв 2016, 11:59
Репутация: 4
Статус: Не в сети

Декодирование протокола DECT с HackRF One и GR-DECT2

Сообщение willi289 » 12 мар 2016, 19:15


Профис, а что за свисток?


Профис
Новичок
Сообщения: 16
Зарегистрирован: 18 фев 2016, 22:25
Репутация: 2
Статус: Не в сети

Декодирование протокола DECT с HackRF One и GR-DECT2

Сообщение Профис » 12 мар 2016, 21:28


willi289, обычный китайский USB донгл на чипе Realtek RTL2832U


willi289
Постоянный пользователь
Сообщения: 114
Зарегистрирован: 22 янв 2016, 11:59
Репутация: 4
Статус: Не в сети

Декодирование протокола DECT с HackRF One и GR-DECT2

Сообщение willi289 » 12 мар 2016, 21:47


Профис, есть у меня такой. он максимум до 1700мгц. а dect с 1880-1900. не потянет он. поэтому и ошибка


Профис
Новичок
Сообщения: 16
Зарегистрирован: 18 фев 2016, 22:25
Репутация: 2
Статус: Не в сети

Декодирование протокола DECT с HackRF One и GR-DECT2

Сообщение Профис » 13 мар 2016, 13:51


Вот поэтому я и подумываю заказать HackRF себе, поскольку сейчас не осталось свистков в продаже, у которых чип е4000 (до 2100 мгц)...


willi289
Постоянный пользователь
Сообщения: 114
Зарегистрирован: 22 янв 2016, 11:59
Репутация: 4
Статус: Не в сети

Декодирование протокола DECT с HackRF One и GR-DECT2

Сообщение willi289 » 16 мар 2016, 10:07


наконец то установил убунту, обновил ПО. начал настраивать ПО для dect. все шло нормально до момента с префиксом:
sdr@sdr-Aspire-ES1-111:~/pybombs$ sudo pybombs prefix init /usr/local/gr-compPyBombs.prefix - ERROR - Ignoring. A prefix already exists in `/usr/local/gr-comp'
я не указал ключ -а, думал изза этого проблема, но нет:
sdr@sdr-Aspire-ES1-111:~/pybombs$ sudo pybombs prefix init /usr/local/ -a gr-comp
PyBombs.prefix - ERROR - Ignoring. A prefix already exists in `/usr/local'
подскажите что за ошибка?


Nik90
Интересующийся
Сообщения: 35
Зарегистрирован: 01 мар 2016, 19:30
Репутация: 8
Статус: Не в сети

Декодирование протокола DECT с HackRF One и GR-DECT2

Сообщение Nik90 » 16 мар 2016, 10:24


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


willi289
Постоянный пользователь
Сообщения: 114
Зарегистрирован: 22 янв 2016, 11:59
Репутация: 4
Статус: Не в сети

Декодирование протокола DECT с HackRF One и GR-DECT2

Сообщение willi289 » 16 мар 2016, 10:30


Nik90, просто продолжать дальше установку?

Аватара пользователя

Автор темы
DesignerMix
Администратор
Администратор
Сообщения: 4492
Зарегистрирован: 25 апр 2014, 10:51
Есть ответ: 172
Репутация: 551
Откуда: Белгород
Контактная информация:
Статус: Не в сети

Декодирование протокола DECT с HackRF One и GR-DECT2

Сообщение DesignerMix » 16 мар 2016, 10:35


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


willi289
Постоянный пользователь
Сообщения: 114
Зарегистрирован: 22 янв 2016, 11:59
Репутация: 4
Статус: Не в сети

Декодирование протокола DECT с HackRF One и GR-DECT2

Сообщение willi289 » 16 мар 2016, 10:37


продолжил дальше, в конце пишет что не может открыть префикс:

Код: Выделить всё

sdr@sdr-Aspire-ES1-111:~/pybombs$ sudo pybombs -p gr-comp install gnuradio
Traceback (most recent call last):
  File "/usr/local/bin/pybombs", line 9, in <module>
    load_entry_point('PyBOMBS==2.0.1', 'console_scripts', 'pybombs')()
  File "build/bdist.linux-i686/egg/pkg_resources/__init__.py", line 549, in load_entry_point
  File "build/bdist.linux-i686/egg/pkg_resources/__init__.py", line 2542, in load_entry_point
  File "build/bdist.linux-i686/egg/pkg_resources/__init__.py", line 2202, in load
  File "build/bdist.linux-i686/egg/pkg_resources/__init__.py", line 2208, in resolve
  File "/usr/local/lib/python2.7/dist-packages/PyBOMBS-2.0.1-py2.7.egg/pybombs/main.py", line 25, in <module>
    from pybombs.commands import dispatch
  File "/usr/local/lib/python2.7/dist-packages/PyBOMBS-2.0.1-py2.7.egg/pybombs/commands/__init__.py", line 23, in <module>
    from base import CommandBase, dispatch
  File "/usr/local/lib/python2.7/dist-packages/PyBOMBS-2.0.1-py2.7.egg/pybombs/commands/base.py", line 25, in <module>
    from pybombs.config_manager import config_manager
  File "/usr/local/lib/python2.7/dist-packages/PyBOMBS-2.0.1-py2.7.egg/pybombs/config_manager.py", line 636, in <module>
    config_manager = ConfigManager()
  File "/usr/local/lib/python2.7/dist-packages/PyBOMBS-2.0.1-py2.7.egg/pybombs/config_manager.py", line 315, in __init__
    self.load(select_prefix)
  File "/usr/local/lib/python2.7/dist-packages/PyBOMBS-2.0.1-py2.7.egg/pybombs/config_manager.py", line 379, in load
    self._prefix_info = PrefixInfo(args, cfg_files, select_prefix)
  File "/usr/local/lib/python2.7/dist-packages/PyBOMBS-2.0.1-py2.7.egg/pybombs/config_manager.py", line 106, in __init__
    self._find_prefix_dir(args)
  File "/usr/local/lib/python2.7/dist-packages/PyBOMBS-2.0.1-py2.7.egg/pybombs/config_manager.py", line 204, in _find_prefix_dir
    raise PBException("Can't open prefix: {}".format(args.prefix))
pybombs.pb_exception.PBException: Can't open prefix: gr-comp

Аватара пользователя

Автор темы
DesignerMix
Администратор
Администратор
Сообщения: 4492
Зарегистрирован: 25 апр 2014, 10:51
Есть ответ: 172
Репутация: 551
Откуда: Белгород
Контактная информация:
Статус: Не в сети

Декодирование протокола DECT с HackRF One и GR-DECT2

Сообщение DesignerMix » 16 мар 2016, 10:44


Вот я и говорю - укажите вместо префикса путь

Отправлено спустя 2 минуты 19 секунд:
По моему чтобы это сделать нужно стереть -p и префикс и вместо этого указать путь


willi289
Постоянный пользователь
Сообщения: 114
Зарегистрирован: 22 янв 2016, 11:59
Репутация: 4
Статус: Не в сети

Декодирование протокола DECT с HackRF One и GR-DECT2

Сообщение willi289 » 16 мар 2016, 10:48


DesignerMix,
вот такой командой?
sudo pybombs install gnuradio
и потом уже sudo pybombs install gr-osmosdr?

Аватара пользователя

Автор темы
DesignerMix
Администратор
Администратор
Сообщения: 4492
Зарегистрирован: 25 апр 2014, 10:51
Есть ответ: 172
Репутация: 551
Откуда: Белгород
Контактная информация:
Статус: Не в сети

Декодирование протокола DECT с HackRF One и GR-DECT2

Сообщение DesignerMix » 16 мар 2016, 12:24


willi289, так...

Под рукой нет линукса чтобы проверить, попробуйте так (команду скопировал из шапки темы и изменил имя префикса): sudo pybombs prefix init /usr/local/ -a gr-comp1

Соответственно далее где нужно указывать имя префикса пишите gr-comp1

Вы вообще указывали sudo pybombs prefix init /usr/local/gr-comp т.е. имя префикса вы включили в путь не поставив пробел, в этом корень проблем.


willi289
Постоянный пользователь
Сообщения: 114
Зарегистрирован: 22 янв 2016, 11:59
Репутация: 4
Статус: Не в сети

Декодирование протокола DECT с HackRF One и GR-DECT2

Сообщение willi289 » 16 мар 2016, 12:53


DesignerMix, спасибо. попробую, щас тоже нет убунту под рукой. я устанавливал отдельно gnuradio, снова ошибки в блоках gnuradio, поэтому решил начать с вашей инструкцией по dect, может pybombs решит эту проблему

Отправлено спустя 19 минут 28 секунд:
DesignerMix, давайте все эти проблемы с установками ПО обсуждать в этой теме viewtopic.php?f=64&t=1476
а то тут мы уходим от процессов декодирования dect..