Первое знакомство с HackRF и gqrx
Вопросы анализа радиоэфира, за пределами Wi-Fi, Bluetooth и BLE для меня довольно новые. Поэтому когда я получил на почте свой HackRF, то у меня возник вопрос — а что с ним, собственно, делать? Эта статья посвящена именно этому — как проверить и задействовать HackRF. Для наглядности мы просто будем слушать FM радио. Что-то более серьёзное будет в последующих инструкциях.
Если вы тоже начинающий, то HackRF это радио (Software-defined radio), прибор, которые может отправлять и получать радиоволны в очень широком диапазоне. А gqrx — это одна из программ для работы с получаемыми через HackRF (или другими аналогичными устройствами) данными. У этой программы графический интерфейс и она очень подходит для самого первого знакомства с SDR.
Настоятельно рекомендуется прочитать «SDR и HackRF для начинающих». Если не осилите всё, то хотя бы раздел «Как установить драйвер, инструменты HackRF и SDR утилиты». Также запомните, что HackRF не должен быть включён, а тем более передавать или получать данные, если к нему не подключена какая-либо антенна!
Где купить HackRF
Я купил у этого продавца. Особенность покупки HackRF в том, что имеется множество вариантов комплектаций:
Можно купить только плату, даже без USB кабеля питания, а можно купить вместе с корпусом и несколькими антеннами. Виды корпусов также различаются. Ещё нужно быть внимательным, и не перепутать корпус без платы с самой платой — некоторые корпусы (с экраничиком и встроенной батареей) могут стоить как сама плата.
Моя комплектация:
Состав пакета:
- 1 x HackRF One Software Defined Radio с алюминиевым корпусом
- 4 x HackRF SMA антенны (40MHz-6GHz антенна; 2.4G/5/5.8G антенна; 70MHz-2700MHz антенна; 40MHz-860MHz антенна)
- 1 x специальная защитная крышка (приварена к плате) для HackRF One
- 1 x модуль HackRF TCXO PPM0.1 GPS Clock
- 1 x кабель LG Micro USB
Мне понравилось, что имеется несколько антенн под разные нужды.
Коробка мне пришла в весьма мятом виде и я пока шёл с почты довольно сильно волновался за плату:
К счастью, плата была уже в корпусе, а корпус довольно крепкий и на нём не было ни царапины.
Антенны на вид очень хрупкие, но они оказались в полном порядке — не погнутые и не сломанные. Не повезло только устройству «HackRF TCXO PPM0.1 GPS Clock module», при деформации коробки, ножки проткнули упаковку:
Сами ножки также были погнуты.
Я распрямил ножки плоской отвёрткой и установил этот модуль на плату HackRF. Я забыл сделать фотографию (а разбирать ещё раз лень) и к тому же я не уверен, что установил правильно. Поэтому про модуль HackRF TCXO PPM0.1 GPS Clock, для чего он нужен и как его использовать будет в какой-нибудь последующей статье.
Как проверить HackRF
При подключении HackRF к компьютеру с Linux практически ничего не происходит — только на плате загораются индикаторы. В самой системе нет каких-то встроенных аплетов для подключения к HackRF. Поэтому начнём с раздела «Быстрый старт с HackRF. Первый приём и передача данных в HackRF».
Посмотрим информацию:
hackrf_info
Во-первых, устройство обнаружено, и на нём установлена прошивка 2018.01.1. Версию последней прошивки можно проверить здесь: https://github.com/mossmann/hackrf/releases/. Там такая же версия, то есть обновление не требуется (если что, про обновление прошивки написано здесь).
Попробуем получить данные на максимальной скорости:
hackrf_transfer -r /dev/null -s 21500000
Попробуем отправить данные:
hackrf_transfer -t /dev/zero
Как минимум базовые тесты пройдены — несмотря на мятую коробку, устройство не пострадало.
Пошаговая инструкция по обновлению прошивки HackRF
С момента написания данной статьи вышло обновление программного обеспечения для HackRF, в том числе обновление прошивки HackRF.
Для проверки версии установленного ПО и прошивки HackRF запустите команду:
hackrf_info
Как можно увидеть, версия программного обеспечения, установленного на данный компьютер, теперь 2021.03.1:
hackrf_info version: 2021.03.1 libhackrf version: 2021.03.1 (0.6)
А версия прошивки 2018.01.1:
Firmware Version: 2018.01.1 (API:1.02)
Убедиться, что это последняя версия ПО можно на данной странице: https://github.com/mossmann/hackrf/releases/
Там же мы узнаём, что начиная с выпуска 2021.03.1, CPLD bitstreams теперь включён в прошивку и автоматически загружается вместе с ней при обновлении. Отдельно обновлять CPLD больше не нужно.
Общие сведения о процессе апгрейда вы можете прочитать в разделе «Как обновить прошивку HackRF», этот же раздел пошагово покажет, как загрузить новую прошивку на HackRF.
Файл прошивки поставляется вместе с libhackrf и hackrf-tools. Название конкретных пакетов может быть разным в различных дистрибутивах Linux. Подробности смотрите в разделе «Как установить драйвер, инструменты HackRF и SDR утилиты».
То есть вам нужно дождаться, когда эти пакеты будут обновлены в репозиториях вашего дистрибутива, либо вы можете скомпилировать их самостоятельно.
Файл с прошивкой называется hackrf_one_usb.bin, найдём путь до него в системе:
locate hackrf_one_usb.bin
В моём случае это /usr/share/hackrf/hackrf_one_usb.bin.
Хотя обновлённые libhackrf и hackrf-tools должны означать, что файл прошивки тоже новый, проверим, что у файла свежая дата создания.
ls -l /usr/share/hackrf/hackrf_one_usb.bin
Для запуска процесса обновления используйте команду вида:
hackrf_spiflash -w /ПУТЬ/ДО/hackrf_one_usb.bin
Например:
hackrf_spiflash -w /usr/share/hackrf/hackrf_one_usb.bin
Всё готово:
Чтобы изменения вступили в силу, выключите и включите HackRF (отсоедините от USB кабеля).
Вновь выполним проверку версии ПО:
hackrf_info
Теперь прошивка HackRF обновлена!
Как принимать сигнал с HackRF
Установим программу gqrx, для этого в Kali Linux, Debian, Linux Mint, Ubuntu и их производных выполните команду:
sudo apt install hackrf gqrx-sdr
В BlackArch и Arch Linux выполните команду:
sudo pacman -S gqrx
Запустите gqrx:
gqrx
При первом запуске появится окно настройки, в нём можно выбрать источник принимаемых данных и устройство вывода звука. В качестве Device (Устройства) я выбрал HackRF, также увеличил Input rate до максимального значения 20000000.
Главное окно gqrx:
Для запуска приёма сигнала нажмите кнопку «Start DSP processing», а для смены частоты можно указывать её в окне «Frequency», либо устанавливать на панели с цифрами. Панель можно передвигать за нижний ряд цифр:
Для остановки приёма сигнала нажмите кнопку «Stop DSP processing» (бывшая кнопка «Start DSP processing»). Если вы хотите отключить HackRF (например для смены антенны), то лучше выйти из gqrx, т. к. у меня после переподключения HackRF эта программа зависала.
Во время приёма сигнала довольно высокая нагрузка на центральный процессор, возможно, из-за того, что я выбрал высокий Input rate:
Как слушать FM радио с HackRF
Диапазоны FM это 92.1-107.1 MHz. Поскольку частота в окне «Frequency» указана в kHz (килогерцах), то нам нужно перейти примерно к 100000 kHz:
Вы можете увидеть, что в этом диапазоне много пиков — это и есть эфиры радиостанций.
В качестве «Mode» выберите «WFM (stereo)».
Увеличьте значение «Gain», иначе будет слишком тихо.
Нажимая на кнопку Bookmark можно сохранять частоты в закладки.
Если нажать на кнопку Rec, то можно записывать аудио.
Небольшое видео, на котором я осваиваю интерфейс gqrx:
Это только самое начало! Далее мы с вами будем разбираться с источниками сигнала и методами их декодирования. С помощью HackRF можно обнаруживать самые разные устройства: от беспроводных дверных звонков до жучков, скрытых камер и радаров. Некоторые виды сигналов возможно расшифровать: рации, устаревшие телефонные стандарты и т. п. Некоторые виды сигнала можно только фиксировать: Wi-Fi, современные телефонные стандарты и т. п. В любом случае, мир радио волн очень обширный и интересный!
Связанные статьи:
- SDR и HackRF для начинающих (100%)
- Как перевести беспроводную карту в режим монитора (контроля) в Kali Linux (50%)
- Как узнать, поддерживает ли беспроводная карта инжект (инъекцию) в Kali Linux (50%)
- Лучшая Wi-Fi карта для Kali Linux и BlackArch (50%)
- Решение проблем с ошибками rt2x00usb_vendor_request: Error - vendor request * failed for offset * with error -110 и RTNETLINK answers: Operation not possible due to RF-kill (50%)
- Как конвертировать рукопожатие (хендшейк) в новый формат Hashcat. Решение проблемы «Old hccap file format detected! You need to update» (RANDOM - 12.9%)
Рекомендую попробовать программу URH — universal radio hacker
Спасибо, буду пробовать! Точнее, я её запускал перед gqrx, но без инструкции не смог понять. Много интересных программ, в том числе сканеров и декодеров. Буду курить мануалы.
Есть интересные сайты с описанием на какой частоте что работает: как по производителям, так и по местам РФ (видимо, собрано энтузиастами). Буду во всё это погружаться по мере свободного времени.
Вышло обновление ПО!
Добавлен раздел «Пошаговая инструкция по обновлению прошивки HackRF».