Тестовый взлом автомобильной сигнализации

I

ins1der

Original poster
Среди программного обеспечения для исследования радиосигнала стандартом де-факто является GNU Radio. Этот комплекс дает очень крутой набор инструментов, начиная от фильтров и простых математических преобразований сигнала и заканчивая интерфейсами для трансляции данных в сеть и написания своих собственных модулей. Его и будем использовать.

УСТАНОВКА
Установку будем проводить на OS X. Если у тебя нет Xcode, то нужно его установить, так как вместе с ним поставляется компилятор, который нам потребуется. Берем из App Store. Поскольку мы будем использовать GNU Radio, понадобится графическая система X11 (скачать можно тут. Теперь установим основные библиотеки (MacPorts, если вдруг нет, берем c macports.org):
Код:
sudo port install bladeRF +tecla

Потом нужно дописать в файл конфигурации командной оболочки .bashrc (при отсутствии) следующее:
Код:
export DISPLAY=:0.0
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export MANPATH=/opt/local/share/man:$MANPATH
export PYTHONPATH=/opt/local/Library/Frameworks/Python.framework/
    Versions/2.7/lib/python2.7/site-packages:/opt/local/lib/
    python2.7/site-packages:${PYTHONPATH}

Если все прошло успешно, на следующую команду должен быть примерно такой ответ:
Код:
bladeRF-cli -p
    Backend:        libusb
    Serial:         d1ece1003730a1a27f9beeba1f511413
    USB Bus:        4
    USB Address:    8

Полную же информацию можно посмотреть, перейдя в интерактивный режим:
Код:
bladeRF-cli -i

И напечатав info и version:
4457f96aa91867aec123127d71248604.png


Здесь обратим внимание на строчки:
Код:
FPGA size: 40 KLE
FPGA version: Unknown (FPGA not loaded)

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

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.

. В зависимости от размера FPGA (у нас 40 KLE) выбираем соответствующий файл, в нашем случае hostedx40-latest.rbf. Скачиваем и подгружаем командой
Код:
bladeRF-cli -l hostedx40-latest.rbf


На устройстве должны замигать огоньки — теперь оно готово к работе. Остается установить GNU Radio, что можно сделать командой
Код:
sudo port install gnuradio +grc +swig +wxgui +qtgui +python27


Вдогонку нужно добавить в GNU Radio поддержку самого bladeRF с помощью модуля gr-osmosdr:
Код:
sudo port install gr-osmosdr


Теперь можно запустить программу и приступить к сути:
Код:
gnuradio-companion

ТЮНЕР ДЛЯ ПОИСКА РАБОЧЕГО СИГНАЛА
Сначала сделаем сканер эфира с визуализацией частотного спектра, он поможет нам отыскать сигнал от автобрелока для исследования. Для этого в правом окне GNU Radio выбираем osmocom Sink — это модель самого устройства, перетягиваем блок на рабочую область и в свойствах блока указываем используемое устройство (у меня bladeRF, и в графе Device Arguments будет bladerf=0), частоту (Ch0: Frequency) и ширину диапазона, который будет видеть сканер. Остальные настройки можно пока оставить по умолчанию.

Управление значениями часто изменяемых переменных обычно выносится на рабочую область: делаются слайдеры или просто блоки с прописанными значениями. Поскольку у нас сканер, сделаем слайдер, которым в процессе работы можно будет изменять рабочую частоту: просто перетягиваем блок WX GUI Slider и устанавливаем границы его действия, значение по умолчанию и айдишник — например, freq. В osmocom Sink в поле частоты прямо так и пишем — freq. Добавим блок WX GUI Waterfall Sink, отвечающий за графическое отображение сигнала, и соединим линией с osmocom Sink. Чтобы не анализировать каждый раз сигнал вживую, обычно делается его запись в файл, а затем она воспроизводится на стадии анализа.

Для этого добавим блок File Sink с указанием имени файла, в который будут писаться данные в сыром виде, сделаем связь, и сканер готов! Остается запустить, после чего, двигая ползунком, найти рабочую частоту и сделать запись сигнала. Сохраним полученную схему как tuner.grc, она должна выглядеть примерно как на первой картинке. Вид тюнера в работе можно посмотреть на второй картинке.

574148256ad691d6c0574375631f235e.png

738dd71fd1ae550dccbdc69291433491.png

АНАЛИЗ ПОЛУЧЕННОГО СИГНАЛА
Создадим новую схему (например, под именем radioaudi-reversing.grc), где сигнал будет браться уже не с bladeRF, а из записанного файла. Для этого используем блок File Source, которому просто передадим имя файла. Теперь начинается самое интересное. При переводе полученной на предыдущем этапе (второе изображение) в зависимость уровня сигнала от времени его значение берется как сумма всех амплитуд по всем охватываемым частотам спектра для каждого момента времени, поэтому исследуемый сигнал требуется отделить от шума. Для этого можно применить модуль Low Pass Filter, но он отрезает частоты, оставляя коридор вокруг нулевой частоты, то есть ровно по центру (0 МГц).

У нас в любом случае в центре оказывается сигнал от постоянного тока в электрической схеме устройства, и изменением параметра freq проблему не решить. Но весь спектр можно сдвинуть, домножая поступающий из osmocom Sink сигнал на другой, с частотой, равной требуемому сдвигу (это математика). Для этого добавим блок Multiply и Signal Source, на вход первого подадим сигнал второго вместе с выходом File Source. Выход Multiply, в свою очередь, прокинем на Low Pass Filter. Здесь я выбрал частоту среза 10 кГц (значение 10e3) и ширину перехода 1 кГц (значение 1e3, этот параметр отвечает за то, как резко фильтр обрезает сигнал, то есть насколько размыты края граничной области).

Другой важный параметр — частота Signal Source — то значение, на которое как раз будет сдвигаться имеющийся сигнал. Имеет смысл вынести его на рабочую область со слайдером, так же как freq, под именем, например, freq_0. Выход Low Pass Filter теперь просто направляем на WX GUI Waterfall Sink — полезный сигнал должен попадать ровно посередине, на условной частоте в 0 МГц.

Ура! На этом этапе мы уже можем вплотную подобраться к анализу сигнала. Перетащим на рабочую область WX GUI Scope Sink и соединим его с выходом Multiply через блок Complex to Mag, который служит, как ты догадываешься, для перевода значений сигнала из комплексной области в область более удобных для оперирования вещественных значений. На изображении можно посмотреть, как это должно выглядеть.

К счастью, данные у нас передаются с использованием амплитудной модуляции и есть только два уровня, поэтому мы можем сразу перейти к бинарному представлению. Для этого направим выход Complex to Mag на блок Binary Slicer, который преобразует последовательность амплитуд сигнала в последовательность нулей и единиц в зависимости от того, больше нуля значение или нет. Так как у нас все значения амплитуд сигнала больше нуля, с помощью простого арифметического блока Add const со значением примерно -170m опустим график, чтобы Binary Slicer было что различать. Выход последнего направим в файл через уже знакомый нам блок File Sink.

Заметим, что подобная схема на практике усложняется такими модулями, как Rational Resampler и Throttle. Первый позволяет снизить частоту дискретизации сигнала для того, чтобы не оперировать в дальнейшем избыточными данными, второй по сути работает так же и используется для снижения нагрузки на процессор в случаях, когда не требуется обрабатывать весь поток данных целиком без пропуска значений (например, достаточно только выводить данные на экран, как у нас). Также стоит отметить, что для сдвига частоты считается более корректным использовать блок Frequency Xlating FIR Filter, но ради наглядности мы используем для этого Multiply.
469d602e5023da4a4e807ffa3c3cf0e2.png


На экране Waterfall Plot на нулевой секунде можно заметить полезный сигнал. На графике Scope Plot он отображается как зависимость амплитуды от времени.

d4f32fafca7a0a58eec05c2cd7e1ea0a.png


ИНТЕРПРЕТАЦИЯ ПОЛУЧЕННЫХ ДАННЫХ
Итак, мы получили файл с последовательностью байтов, отражающих сигнал в бинарной форме. 0x01 — единица, 0x00 — ноль. Для чтения составим на Питоне простенький скрипт, который будет последовательность единиц и нулей свыше определенного порога интерпретировать как 1 или 0, а также разделять различные сигналы между собой.
e109b1f06d6a855f5a437b8a729da117.png

6a46e3071ac4fe3baf2cdc1360240e96.png

При представлении полученных данных в шестнадцатеричном виде получаем последовательности:

2e23a99426bd8018
2e23a929426b805e
2e23a91f29428039
2e23a9031f298058
2e23a9cf031f809e
2e23a932cf0380b3
2e23a90132cf80b1
2e23a9ab013280f6
2e23a9fab0138040
2e23a90fab0180c8
2e23a9a0fab080fc
2e23a94a0fab80a7
2e23a9234a0f802b
2e23a9a234a08022

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

ЗАКЛЮЧЕНИЕ
Как видим, автосигнализация имеет достаточно неплохую защиту, поскольку существует 25*8 ~ триллион возможных вариантов для перебора. Насколько быстро их можно было бы перебрать? Число измерений 0 и 1 для одной последовательности сигнала равняется примерно 45 тысячам, что вместе с частотой семплирования 400 кГц (после децимации исходных 2 МГц Ration Resampler’ом на 5) дает нам 45 000 * (1/400 000) = 0,1125 с. Полное время перебора при условии, что генерируемые сигналы будут идти друг за другом, составляет 0,1125 * 1012 ~ 1,12511 с ~ 3500 лет. В текущем виде копать следует в сторону уменьшения числа вариантов брутфорса или ускорения процедуры. Найдут ли что-то независимые исследователи? Время покажет.
 
  • Like
Реакции: Aleksandr. и Adinson
A

Aleksandr.

Original poster
На этом можно зарабатывать хорошие, почему бы и нет))
 
Название темы
Автор Заголовок Раздел Ответы Дата
Support81 Инженер Amazon осужден за взлом и кражу $5 млн. Новости в сети 0
Support81 Токены Discord нарасхват: взлом Top.gg обернулся кошмаром для разработчиков Новости в сети 0
Support81 70 миллионов или 10 терабайт информации: чем обернется взлом TSMC для мира микросхем? Новости в сети 0
DOMINUS ЦБ России опроверг взлом систем украинскими хакерами Новости в сети 1
1 ВАйфай взлом Вопросы и интересы 2
W Заказать услуги Хакера,Взлом на заказ от [email protected] взлом базы данных,удаленный доступ (telegram,Viber,Whatsapp,Gmail,vk.com,OK.ru) Если Корзина 0
B SERVICE HACKEP [email protected] Услуги Взлома на заказ,заказать услуги взлома,взлом на заказ,сервис взлома. 1. Взлом мессенджеров сообщений: Корзина 0
A Закрыто Пробив, поиск, взлом, флуд: Украина UA| EC | USA Корзина 1
A Пробив, взлом , диверсия Украина UA Ищу работу. Предлагаю свои услуги. 2
T Честный взлом почты mail.ru на заказ за 20$, взлом корпоративной почты, rambler Ukr.net Yahoo Ищу работу. Предлагаю свои услуги. 0
C Сервис по взлому-услуги хакера-заказать взлом на Заказ в [email protected] - Услуги Хакера. Приветствую участников форума! Станьте королем момента Ищу работу. Предлагаю свои услуги. 0
A HackTheBox - взлом виртуальных машинын Omni и Доктор Полезные статьи 0
T Нужен взлом Київстар(україна) Предоставляю работу. Ищу специалиста. 1
D Оптовый взлом почты на заказ (цена 20$) Взлом почты Mail.ru Yandex.ru Rambler.ru Ищу работу. Предлагаю свои услуги. 0
A Интересно HackTheBox - взлом виртуальной машины Tabby Полезные статьи 0
H Аппаратный взлом жёсткого диска Корзина 0
W Интересно Массовый взлом роутеров. Уязвимости и взлом 2
A Интересно HackTheBox - взлом виртуальной машины Blunder Полезные статьи 1
B 100% взлом ВК! Ищу работу. Предлагаю свои услуги. 1
DOMINUS Проверено «EDEM CORP» Верификация / Восстановление (взлом) и пробив аккаунтов Госуслуг / Почты России и СДЭК (ID) для анонимного получения посылок Аккаунты/Админки/Документы 2
D взлом wi-fi курс бесплатно Другое 8
K Gmail взлом Предоставляю работу. Ищу специалиста. 1
M Услуги хакера и взлом на заказ Заказать взлом? - пишите нам [email protected] Взлом сайта, взлом форума - на заказ! Хотите узнать с кем общается В Корзина 0
P Качественный подбор паролей (vk.comOk.ru,WhatsApp.Viber) от [email protected] Взлом сайта, взлом форума - на заказ! Хотите узнать с кем обща Корзина 0
S взлом вк Вопросы и интересы 2
Fiora взлом почты gmail, mail, yandex, yahoo. Взлом социальных сетей (VK, OK,Facebook даже при наличии двухфакторной аутентификации) взлом whatsapp. Вопросы и интересы 6
A Опять же взлом вай фай Вопросы и интересы 1
E Интересно lanGhost: взлом компьютера через телеграмм Уязвимости и взлом 4
S Непослушное соединение: взлом Bluetooth; теория и практика WiFi/Wardriving/Bluejacking 0
K Профессиональный взлом Корзина 1
B Услуги хакера и взлом на заказ Заказать взлом?-пишите нам [email protected] Не нужно писать в ЛС на форуме. Все контакты указаны ниже Пишите на поч Корзина 0
И Поиск и взлом уязвимых устройств интернета Уязвимости и взлом 0
V Профессиональный взлом почты. Без предоплаты! Black list и Разборки 2
andre5787 Как получить доступ к email или взлом удаленного компа Вопросы и интересы 4
О Нужен взлом аккаунта одной раскрученной доски объявлений Вопросы и интересы 0
L [Kali Linux] theHarvester взлом сайтов! Spam/DDOS/Malware 2
S TheFatRat взлом Windows через OpenOffice Полезные статьи 0
K [Pluralsight] Хакинг веб-приложений: взлом функционала по восстановлению паролей Другое 0
J 100% взлом ВК, Телеграмм СИ/Фишинг/Мошенничество 14
T Virus-Tracker - взлом панелей 1ms0rry miner Полезные статьи 1
1 Удаленный взлом IP камер. Видео+ Софт! Софт для работы с текстом/Другой софт 2
K [Pluralsight] Хакинг веб-приложений: взлом функционала по восстановлению паролей Другое 0
V Поиск и взлом уязвимых устройств интернета вещей Полезные статьи 1
M Способ Оригинальный взлом ВК Полезные статьи 0
S Очень хитрый взлом вк СИ/Фишинг/Мошенничество 24
O Типичный взлом wifi на kali linux Полезные статьи 6
A Легальный взлом Способы заработка 1
D взлом камеры Полезные статьи 13
X DDos WIFI, взлом по PIN и брут Вопросы и интересы 1
H взлом Вк через юлу СИ/Фишинг/Мошенничество 0

Название темы