- Статья о Hackrf-one.
- HackRF: Первое знакомство с виновником торжества
- Содержание статьи
- Откуда у нас HackRF
- Обрезание
- Хакер #177. Радиохакинг: что такое SDR?
- Упражнение 1. Быстрый старт
- Упражнение 2. Нюхаем и запоминаем
- WARNING
- Упражнение 3. Собственно реплей
- Итого
- Эксперименты с HackRF и брелоком от автомобиля
Статья о Hackrf-one.
Статья о зеленом куске платы под названием Hackrf-one, я не буду описывать этот девайс кем и когда он был создан, а напишу как его можно применить в благих и не очень целях. В основном не очень! Так вот с полной уверенностью я пишу этот текстчто это необходимый девайс для реалкул хакера, вот пара примеров его использования, мирные цели:
1) отслеживание метео-спутников
2) ловить покемонов имитируя координаты на свой gps на телефоне как будто вы находитесь в нужной вам точке нашего шарика
3) Спросить погоду у радио любителей с Ямала (нужна антенна Диполь большая)
пожалуй и все на этом. У меня че-то других методов использования в мирных целях в моей голове не находится!))
Плохие цели:
1) Можно открыть холодильник от кока-колы на заправке или у ларька!)))
2) открыть автомобиль вот пример http://www.dailymail.co.uk/news/article-4503762/On-Amazon-hacking-gadget-car-thief-s-dream.html
3) открыть дом-виллу сейчас в тренде в европе в основном запирать свой дом на кодовый радио замок так вот с этим зеленый кусок с легкостью справляется
4) открыть гараж
5) открыть шлагбаум
6)угнать квадрокоптер и любое другое бес проводное устройство
7) он работает на частотах от 1MGhz следовательно можно взаимодействовать с без контактными картами которые работают на частотах 13MGhz а именнно платежные банковские карты, проездные, пропуска и т.д.
8) радио мышки и клавиатуры (это я описывал)
9)имуляция GPS координат, а именно подорвать экономику логистики и транспортно-комунальных служб
10)открыть свой ТВ и Радио канал у себя на районе.
11)прослушивать переговоры ( ГАИ, МВД , Охрана ) и т.д. можно еще и поговорить с ними если яица большие))
12) прослушка GSM SMS и его имитация (позже опишу этот метод)
13)Глушение, создание помех анти-кражных ворот в магазинах
Дальше описывать боюсь так как могут посадить в клетку как жирафу за терроризм!
Источник
HackRF: Первое знакомство с виновником торжества
Содержание статьи
Итак, мы разобрались в самых азах SDR, давай перейдем к более интересным вещам. С помощью HackRF ты сможешь не только анализировать более широкий диапазон сигналов, но и взаимодействовать с радиоустройствами. В общем, абсолютно полноценный SDR-трансивер за вполне вменяемые деньги.
Откуда у нас HackRF
Так получилось, что после прошлогоднего ZeroNights я посетил московский Hackspace Neuron и ушел оттуда не с пустыми руками, а с кодом на бету HackRF под честное слово, что девайс не будет пылиться на полке. Дальше было долгое ожидание старта бета-программы. И вот спустя без малого год обычной почтой прибыл долгожданный HackRF Jawbreaker. Большое спасибо Майклу Оссману (Michael Ossmann) за разработанный девайс и Александру Чемерису из Fairwaves за предоставленную возможность поучаствовать в программе бета-тестирования. Примечательно, что, судя по надписи на борту, плата была изготовлена в декабре 2012 года.
Обрезание
Итак, посылка вскрыта, фото сделано, приступим к делу. HackRF поставляется с плохонькой встроенной антенной на
900 МГц. При этом, несмотря на наличие уже распаянного SMA-разъема, просто подключить внешнюю антенну не получится, сигнал все равно будет браться с изогнутой дорожки с краю платы.
Внешне происходящее в GNU Radio похоже на программирование робота Mindstorms
Хакер #177. Радиохакинг: что такое SDR?
Чтобы задействовать желанный антенный разъем, необходимо отключить встроенную антенну. Для этого придется проделать небольшую хирургическую операцию, а именно разорвать одну токопроводящую дорожку. На плате место препарирования предусмотрительно отмечено стрелочкой, и на место будущего разрыва нанесена капля припоя, которую лучше предварительно удалить паяльником. После этого, вооружившись чем-нибудь тонким и острым, нужно разрезать (разорвать) токопроводящую дорожку. Осторожно, поблизости расположено несколько элементов, которые с платы удалять нежелательно, так что будь аккуратен :).
HackRF Jawbreaker — обрати внимание на дату производства
Перед тем как брать в руки скальпель, рекомендуем просмотреть инструкцию.
После успешного обрезания HackRF готов к подключению внешней антенны. Форма, размеры и конструкция созданных впоследствии антенн чрезвычайно разнообразны и зависят от рабочей длины волны и назначения антенны. Если под рукой не оказалось подходящей антенны с SMA-разъемом (как в нашем случае), можно обойтись парой метров медного провода, извлеченного из сетевого кабеля пятой категории aka «витая пара». Достаточно воткнуть один конец в центр антенного разъема на плате (не замкнув при этом на землю), а второй подвесить, например, к люстре. Нам же для начала вполне подойдет кусок провода подлиннее, легко выдираемый из любого сетевого кабеля. Вставляем провод в SMA-разъем, подключаем HackRF по USB к компу, и можно приступать к установке/настройке софтовой части.
Для экспериментов с радио вообще и HackRF в частности пригодны Linux и более-менее OS X. Про Windows по большей части можно забыть, так как под ней ничего, кроме SDR# и HDSDR, не работает.
Osmocom Sink
Самый простой путь получить весь нужный софт в работающем виде — это воспользоваться уже готовым дистрибутивом RTL-SDR/HackRF Live DVD. Также буквально во время написания этой статьи вышел Kali Linux 1.05 с поддержкой RTL-SDR.
Для установки SDR утилит в Kali требуется выполнить следующие команды:
Пользователи OS X могут найти готовые формулы для Homebrew для большинства необходимого софта и собрать все ручками под себя. Однако без понимания и работы напильником не обойтись.
Для начала работы с HackRF потребуется следующий софт:
- hackrf-tools — комплект утилит для работы с самим девайсом от производителя;
- osmosdr — библиотека для работы с различными SDR;
- gnuradio — суперкомбайн для всего и вся, стандарт де=факто;
- gqrx — анализатор спектра + просто радиоприемник на основе Qt + GNU Radio;
- baudline — отображение принятого сигнала.
В только что распакованном девайсе, скорее всего, будет уже устаревшая прошивка, безнадежно отставшая от софта, предназначенного для работы с ним, что в итоге повлечет за собой массу проблем. Прокладываем себе путь, огибая грабли, и обновляем прошивку. Актуальную фирмварь всегда можно скачать из официального репозитория в виде сорцов и собрать самостоятельно или же в бинарном виде.
Baudline выглядит, конечно, винтажненько
В итоге интересующий нас файл — firmware-bin/hackrf_usb_rom_to_ram.bin. Берем его и прошиваем в недра Jawbreaker’а:
После чего для проверки работоспособности HackRF и корректности подключения опросим устройство стандартной утилитой из комплекта hackrf-tools:
Упражнение 1. Быстрый старт
Долго думать над применением девайса не придется, эфир в наше время буквально кишит различной информацией. Простейший способ ее оттуда достать — упомянутый программный приемник gqrx. А первым приходит в голову, что можно принять с помощью радио, как ни удивительно, — радио! Обычное вещание твоей любимой радиостанции с использованием частотной модуляции (FM).
Экран запуска gqrx
Запускаем gqrx, выбираем HackRF Jawbreaker в качестве устройства, оставив остальные пункты по умолчанию.
Остается только нажать на кнопку старта приема и лицезреть визуализацию радиоэфира. Ползущая водопадом вниз спектрограмма наглядно дает понять, на каких частотах ведется вещание, яркость полос соответствует интенсивности сигнала. Далее устанавливаем нужную частоту, демодулятор типа Wide FM, и вуаля, из аудиовыхода уже слышны осмысленные звуки.
Ура, у нас фм-тюнер за 300 баксов! Но это даже не вершина айсберга возможностей, которые открываются перед нами, ведь можно не только принимать, но и передавать! Но с чего начать?
Упражнение 2. Нюхаем и запоминаем
В качестве подопытного возьмем бытовой беспроводной звонок. Данное устройство состоит из двух частей: передатчика с кнопкой звонка и приемника с мерзким динамиком-пищалкой. При нажатии кнопки звонка происходит передача данных (уникальных для каждой пары приемник/передатчик) «в цифре» на частоте 433,92 МГц, если верить инструкции. Наша задача отснифать сигнал передатчика и научиться повторять, чтобы можно было звонить соседу в дверь удаленно.
Для начала определимся с частотой и проверим наличие сигнала при помощи gqrx.
Как видно из картинки выше, при отправке сигнала четко заметен небольшой «всплеск», оставляющий на спектрограмме ярко-красный след. Итак, данные передаются, теперь запишем их в файл командой
Как ты помнишь, работает наша игрушка в Half-duplex режиме, так что флаг -r явно указывает, что же нужно делать, а bell1 — в нашем случае имя файла, куда в итоге попадет дамп эфира. Ключом -f задается частота в герцах, в этих же единицах указываются ширина записываемой полосы (-b) и частота дискретизации сигнала (-s). Ключ -a отвечает за использование встроенного усилителя.
Запустив снифер, «звоним в звонок». Количество данных, получаемых из АЦП при сэмплировании на 16 МГц, достаточно велико, и лишние минуты работы снифера могут вылиться в гигабайтные дампы, 99,9% которых — бесполезный шум, наследие бесконечного космоса. Сейчас же нас интересуют земные сигналы, а именно что же передала кнопка звонку.
Лучший способ ознакомиться с полученной информацией — использовать спектроанализатор. Тут нам на помощь придет старенькая, но до сих пор незаменимая программа baudline. Подгружаем наш файл в raw-режиме, вручную выставляя параметры интерпретации (см. рисунок), иначе чуда не произойдет.
Спектроанализатор позволит выявить нужный нам сигнал
WARNING
Также следует учесть, что baudline имеет дурное свойство падать при открытии больших файлов, так что если ты пишешь длительный по времени радиообмен, то следует воспользоваться командой dd и порезать полученный файл на кусочки. Например, так:
Спектроанализатор визуализирует эфир наподобие того, что мы уже видели в gqrx (точнее, все наоборот), но обладает богатым функционалом, позволяющим, в частности, нам скроллить и зуммить как захочется. Присмотревшись, среди шумов можно обнаружить явный сигнал.
Что ж, раз сигнал есть, попробуем его воспроизвести в эфир.
Слушаем частоту нашего звонка
Получи FM-тюнер за 300 долларов
Упражнение 3. Собственно реплей
При помощи все той же утилиты hackrf_transfer производится и передача в эфир, по большому счету отличие лишь в флаге -t вместо -r, намекающем на TX.
Просто, не правда ли? Слишком просто! Жаль, что на данный момент hackrf_transfer опять поломали в части отправки. Поэтому для проигрывания записанного дампа будем использовать исключительный Инструмент с большой буквы И — GNU Radio.
Для нашей цели источником сигнала будет файл дампа, который мы только что инспектировали при помощи baudline. Для его подгрузки просто добавляем блок File Source и в его свойствах указываем путь до файла. Следует обратить внимание на то, что каждая точка соединения имеет свой тип (на самом деле это тип данных Python) и цвет. Наш первый блок будет отдавать данные типа Byte, что, впрочем, неудивительно для ресурса-файла.
Большинство блоков GNU Radio заточены под обработку данных, представленных в векторном виде, поэтому прежде, чем что-либо делать дальше, требуется «приведение типов». Сделаем это преобразование в два шага: UChar -> Float, Float -> Complex, предварительно произведя деинтерливинг (расчленение потока на действительную и мнимую составляющие). Делается это не сложнее добавления источника — перетаскиваем нужные блоки и соединяем.
Следующий блок в цепочке (Add Const) также требуется для приведения данных из нашего радио к виду, пригодному для дальнейшей работы, а именно для выравнивания сигнала относительно нулевого уровня сложением с вектором-константой. Теперь наши данные выглядят и имеют формат по всем правилам GR, и можно отправить их прямо в блок вывода (osmocom Sink).
Osmocom Sink как раз реализует прослойку между GR и множеством различных ресиверов и трансмиттеров, и HackRF в их числе. Sink-блок для нашего случая обладает практически теми же параметрами, что и hackrf-transmit. Для более удобного изменения частоты передачи и частоты дискретизации в дальнейшем, создадим переменные (вытащим из списка пару блоков Variable), назовем их freq и samp_rate и зададим соответствующие значения: 433 МГц и 16 МГц. Ведь с какими параметрами записывали, с такими и надо отдавать. При конфигурации блока вывода в соответствующих полях укажем не значения, а имена переменных. Так, при определении свойств блоков в полях можно указывать не только константы, но и переменные и даже целые выражения, что, по сути, дает огромные возможности.
Итак, преобразование данных описано, свойства блока вывода соответствуют исходным условиям, время запустить эту шарманку! По аналогии с IDE разработки, кликаем на кнопку компиляции, в результате получаем проект, собранный в виде Python-скрипта, пригодного для запуска отдельно от gnuradio-companion.
. Пространство разрывает звук китайской псевдополифонии. Так что теперь можно зазвонить соседей ровно до того момента, пока они не вытащат батарейки из своего звонка. Использование направленной антенны приветствуется.
Итого
HackRF отлично вписывается в нишу бюджетных приемопередатчиков, да и само комьюнити SDR бурлит и развивается, выходят дешевые гаджеты, пишется софт, жизнь удалась. Уже есть проекты для работы со спутниками, ADS-B, GSM, LTE, Bluetooth, а то, чего еще не придумали, ты можешь реализовать сам в GNU Radio.
Источник
Эксперименты с HackRF и брелоком от автомобиля
Проект HackRF появился на Kickstarter, и я решил написать небольшую статью об области применения этой программно-определяемой радиосистемы (Software Defined Radio, SDR).
Проект HackRF появился на Kickstarter, и я решил написать небольшую статью об области применения этой программно-определяемой радиосистемы (Software Defined Radio, SDR).
Я давно хотел поиграться с моими брелоками от автомобилей (в основном из праздного любопытства). Подобные устройства, генерирующие довольно чистый сигнал, имеются практически у каждого. В своих экспериментах я использовал брелок от Субару и Киа (машина моего друга). Оба этих брелока используют различный механизм кодирования сигнала, так что мои эксперименты ожидались весьма интересными.
Помимо чисто теоретического интереса, результаты эксперимента не будут столь полезны, поскольку все подобные устройства используют непрерывно изменяющийся код, и полученная последовательность, которая разблокирует автомобиль, может быть использована лишь однажды. Хотя, конечно, я не могу утверждать на сто процентов, что все такие радиопередатчики реализованы именно подобный образом. Короче говоря, это такая тема, которую необходимо исследовать более глубоко.
В начале эксперимента я начал выяснять, на каких частотах работают брелоки. Оказалось, что брелок для Киа работает на частоте 315 МГц, а брелок для Тойоты и Субару на частоте 433.847 МГц (по крайней мере, на многих моделях).
Теперь, когда мы узнали рабочие частоты, что же дальше? Для начала я запустил GQRX (софт для работы с системами SDR) для того, чтобы получить общее представление о физических процессах, происходящих во время передачи данных. Приношу свои извинения за то, что не могу опубликовать актуальный скриншот, и ниже привожу образец амплитудно-модулированного сигнала.
Теперь, когда мы примерно понимаем, что происходит, произведем запись передаваемой информации. Наиболее быстрый способ сделать это — hackrf_transfer:
$ hackrf_transfer -r Kia-312MHz-8M-8bit.iq -f 312000000 -s 8000000
Обратите внимание, что мы записываем данные не на центральной частоте (315МГц), а чуть смещенной от нее. Так как мы перехватываем полосу в 8 МГц, то, по сути, получаем сам сигнал, однако делая небольшой сдвиг, мы избегаем смешения постоянной составляющей, которая является причиной пика в центре диапазона настройки HackRF. Последние версии прошивок позволяют практически полностью сгладить этот пик, однако мы может избавиться от него полностью.
Дадим утилите hackrf_transfer поработать какое то время, параллельно несколько раз нажимая на кнопку блокировки (или разблокировки) на брелоке. Через несколько секунд нажмите ctlr-c для того, чтобы остановить захват сигнала.
Я рекомендую именовать файлы внимательно: полученные данные представляют собой сырые синфазно-квадратурные выборки и не содержат какую-либо информацию о ширине выборки (в нашем случае 8 МГц), центральной частоте (312 МГц) и схеме кодирования (для HackRF все выборки 8-битные). Так что лучше именовать файлы правильно с самого начала.
Теперь у нас есть большой файл данных. Что мы можем с ним сделать? Есть одна хорошая утилита под названием baudline (http://www.baudline.com/download.html). К сожалению, условия лицензии не позволяют включать эту утилиту в дистрибутив, поэтому вам необходимо скачать ее самостоятельно.
У baudline существуют парочка не совсем приятных фитч. Во-первых, baudline плохо обрабатывает большие файлы (более 50 Мб). Во-вторых, для каждого входного файла baudline запускает команду «file» (которая определяет тип файла), что заметно замедляет работу. Для устранения этого недочета нужно изменить переменную окружения $PATH перед запуском baudline. Мой скрипт запуска baudline выглядит так:
#!/bin/sh
export PATH=
/bin/disable/ находится простейший скрипт с именем «file», который выглядит так:
Теперь нам необходимо раздробить полученный файл на куски по 50 Мб. Для этого будем использовать утилиту «dd». Следующая команда откусывает первые 50 Мб от нашего файла:
$ dd if=foo.iq of=trimmed.iq bs=1M count=50
Разбиваем файл на блоки по 50 Мб:
$ dd if=foo.iq of=trimmed.iq bs=1M count=50 skip=50
Для объединения полученных блоков обратно в исходный файл можно использовать утилиту «split».
Теперь открываем первый кусок файла в baudline. Щелкните правой кнопкой мыши «input->open file. », затем выберите файл и установите формат «raw» вместо «auto detect». Перед вами появится следующее окно:
Настройки, на которые следует обратить внимание:
Sample rate: выбираем custom и выставляем значение 8000000 (поскольку мы получали выборку шириной в 8 МГц). Если ширина выборки другая, например, 20 МГц, выставляйте значение 20000000.
Channels: выставляем значение 2, поскольку hackrf записывает синфазные и квадратурные данные. Далее отметьте флажки «quadrature» и «flip complex» (последний флажок необходим потому, что HackRF пишет в формат отличный от формата baudline).
Decode Format: поскольку HackRF пишет беззнаковые 8-ми битные выборки, выбирайте «8 bit linear (unsigned)».
После установки необходимых параметров получаем следующую картину:
Мы получили изображение нашего сигнала. На этом скриншоте показан сигнал, снятый с брелока Субару (амплитудная модуляция), по сути, это азбука Морзе (передавать или не передавать).
При передаче сигнала, снятого с брелока Киа, используется частотная модуляция. Увеличенное изображение показано ниже:
Что мы видим на это скриншоте? После включения передатчика посылается комбинация сигналов с нулевой и ненулевой амплитудой, по сути, последовательность битов ‘101010101010’. Теперь вернемся к скриншоту сигнала от брелока Субару. Здесь также вначале посылается последовательность ‘1010101010’. Первоначальная последовательность говорит приемнику о том, что далее будут переданы основные данные, а также помогает нам выяснить длину цикла для сигналов с нулевой и ненулевой амплитудой.
Листая далее картинку частотно модулированного сигнала с брелока Киа, мы видим начало передачи основных данных:
На скриншоте выше показана последовательность, которая посылается для разблокировки автомобиля.
В baudline можно выделить нужный диапазон и сохранить его в отдельный файл:
Щелкните правой кнопкой мыши на выделенном диапазоне и далее выберите «output->export selection as. «
Будьте внимательны, во время экспорта файла baudline изменяет его формат. Это повлияет на загрузку файла в будущем и любой код gnuradio, который вы мастерите для последующей обработки файла. Более надежный вариант – использовать «dd» для обрезания файла (немного поэкспериментируйте, чтобы подобрать нужный размер) и его загрузка в baudline.
Для повторного открытия файла, сохраненного в baudline, используйте следующие настройки:
При повторном открытии изменился формат декодирования (вместо 8-битного стал 16-битный), а также снят флажок «flip complex».
В следующей статье я попробую загрузить файл с выборкой в Gnuradio-Companion и сразу же извлечь битовый поток амплитудной модуляции.
Источник