![]() |
Приветствую, форумчане! В этой статье я хочу рассказать о том, как начать работать с osmocom-bb - проекте, позволяющем сделать из старой моторолы инструмент изучения и тестирования GSM сетей.
Я постараюсь дать достаточное количество информации, что бы вы без лишней боли смогли начать работу с osmocom. https://forum.antichat.xyz/attachmen...7204422646.png Osmocom? Впервые слышу! Osmocom - это открытая имплементация стека протоколов GSM. Включает в себя программное обеспечение и инструменты, реализующие различные стандарты мобильной связи, включая GSM, DECT, TETRA и другие. Так описано на официальном сайте. Osmocom-bb реализует клиентскую часть протокола GSM. Для этого используются телефоны на базе чипсета calypso и mediatek. К таким телефонам относятся, например, motorola c115, motorola c118, motorola c123, Neo 1973, SciphoneDreamG2. Полный список можно посмотреть на официальном сайте: Phones - OsmocomBB - Open Source Mobile Communications По сути osmocombb соединяет osmocom-совместимый телефон и компьютер с линукс [S](как львиноботы, соединяющиеся в одного супербота)[/S], позволяя программировать устройство для работы с gsm или использовать уже готовые проекты для, например, создания собственной базовой станции gsm (2G), устройства для снифинга gsm трафика и ещё много чего другого. Hardware Для того, что бы начать работу с osmocom, нужно обзавестись некоторыми прибамбасами, а именно:
Телефон Полный список допустимых телефонов можно посмотреть тут. Однако авторы рекомендуют использовать motorola c123 / motorola c118 (телефоны на базе E88), так как проект изначально затачивался именно под них. Телефоны на базе E87 (motorola c115 / c117) так же отлично подойдут: E88 и E87 идентичны на 99%. Я взял motorola c118, так как их было проще всего найти, всё нижеописанное я буду проводить именно с ним. Купить телефоны можно на местной барахолке, в переходе или на авито. Цена вопроса - около 500 р. за штуку. https://forum.antichat.xyz/attachmen...61bf4c4b1c.png Если вы собираетесь поднимать свою базовую станцию, то понадобится 2 телефона и, соответственно, 2 USB-UART конвертера и 2 мини джека. О перепайке фильтров Изначально телефоны отбрасывают весь входящий трафик, не принадлежащий этому телефону (остальной ему просто не нужен). В некоторых проектах, например в снифинге gsm или поднятии собственной базовой станции (BTS), нам нужен весь входящий трафик. Что бы мы могли получать его, нужно перепаять фильтры. Казалось бы, можно просто выпаять фильтры и замкнуть цепь. Но дело в том, что фильтры также преобразуют несбалансированный сигнал 50 ohm от антенны в сбалансированный на 100 ohm, который впоследствии идёт на чипсет RITA. По этому мы не можем просто удалить фильтры и замкнуть цепь. Для перепайки фильтров понадобится паяльный фен, так как по другому удалить детали без повреждения телефона вряд ли получится (точно не получится, я пытался). Так же понадобится паяльник с тонким наконечником и прочие паяльные принадлежности (припой, флюз и т.д.) Детали для перепайки в одном паке можно заказать на aliexpress (цена около 100 р.), или же в русских магазинах, но там цена меня совсем не порадовала. О том, как и что припаивать, написано на официальном сайте. Здесь описано с теорией. USB конвертер Список поддерживаемых USB TTL конвертеров есть на сайте. Конечно, можно купить готовый вариант переходника USB-minijack 2.5 mm, но это во первых дорого, во вторых не интересно. По этому лучше брать отдельно конвертер, отдельно миниджек. Самым дешёвым (цена - около 70 рублей на aliexpress) и стабильным USB-TTL конвертером является CP2102. Хотя для некоторых проектов его нужно перепрошить для возможности работы на нестандартных скоростях - это не является проблемой. О перепрошивке будет ниже, в разделе software https://forum.antichat.xyz/attachmen...6bade69daf.png mini jack Нужен обычный трёхконтактный (TRS) minijack 2.5 mm. Проблема в том, что на дворе 2018 год, и достать 2.5-милиметровый миниджек может быть проблематичным занятием. Если вы везунчик, и вам удалось найти трёхконтактный миниджек, то распайка будет такой:
Мне же, как наверняка и многим другим, удалось найти только "тюльпан" 3RCA TRRS (4 контакта). Под спойлером о том, как его подсоединять Проверяем соединение Что бы проверить связь, будем использовать minicom из под Linux (все дальнейшие действия будут проводиться под Debian 9.4 x86_64) Выключаем телефон, соединяем с компьютером и в терминале ищем подключенный адаптер: Код:
ls /dev | grep ttyUSBОткрываем конфигурацию minicom Код:
sudo minicom -shttps://forum.antichat.xyz/attachmen...7246606580.png Выбираем Выход, затем на телефоне коротко нажимаем кнопку включения. Если в выводе, помимо мусора, появилась надпись Код:
@ftmtoolerrorhttps://forum.antichat.xyz/attachmen...7246674420.png выход из minicom - ctrl + a, x, Enter Software Для начала определимся со структурой проекта: /opt/osmocom - библиотеки проекта и кросс-компилятор, ~/osmocombb - ветки проекта. Все действия будут проводиться на Debian 9.4 x86_64 Собираем libosmocore libosmocore - основная библиотека проекта, почитать про неё можно здесь. Bash: Код:
suУ меня возникли проблемы со сборкой по официальному мануалу, по этому я сделал свой установщик. Bash: Код:
suПосле компиляции нужно прописать путь до бинарников в переменную PATH. Прописываем в конец файла .zshrc, .bashrc или каким ещё терминалом вы пользуетесь: Код: Код:
export PATH=/opt/osmocom/gnu-arm-toolchain/install/bin:${PATH}Собираем OsmocomBB Настало время собрать основную ветку проекта Код: Код:
# создаём рабочее местоКод:
src/target/firmware/MakefileКод:
CFLAGS += -DCONFIG_TX_ENABLEЧуть ниже есть 2 строки, раскомментировав которые, вы получите возможность загружать прошивку в постоянную память, а не только в RAM. https://forum.antichat.xyz/attachmen...7165761358.png Перед компиляцией основной ветки давайте поговорим о перепрошивке USB-TTL конвертера CP2102. Итак, если у вас cp2102 и вы перепрошили его, то перед компиляцией основного проекта в файл Код:
src/host/osmocon/osmocon.cКод:
#define I_HAVE_A_CP210xТеперь вы готовы собрать основную ветку Код: Код:
cd ~/osmocombb/master/src/Тестируем Прошивки ветки master для motorola c115, c118, c123 и прочих на платформе compal_e88 (и 87) находятся по пути Код:
src/target/firmware/board/compal_e88/
Код: Код:
cd ~/osmocombb/master/src/host/osmocon/Код: Код:
#идём в папку с прошивкамиМогут быть проблемы с загрузкой прошивки из-за плохого соединения. Просто переподсоедините телефон и попробуйте снова. Что со всем этим можно сделать У osmocom очень много веток развития. Есть, допустим, burst_int, нацеленный на снифинг gsm-трафика, emi для дос-атак на устройства gsm, но это всё темы для отдельных статей. О том, что есть в ветке мастер (которую мы только что скомпилировали) можно почитать на оффициальном сайте: OsmocomBB Firmware - OsmocomBB - Open Source Mobile Communications. Рассмотрим пример одной прошивки, использующей только телефон и другой, использующей телефон и компьютер одновременно. RSSI RSSI может работать без кмопьютера после прошивки. Он показывает системную информацию о базовой станции. Давайте загрузим эту прошивку на телефон: Код: Код:
#идём в папку с прошивкамиПосле того, как прошивка загрузилась, в выводе терминала будет системная информация о ближайшей базовой станции. Есть возможность менять канал (ARFCN). А ещё он пикает, если нажать кнопку "вверх" С вышкой можно синхронизироваться (зелёная кнопка), тогда будет выдано ещё больше информации: Здесь MMC (Mobile Country Code) - код страны, MNC (Mobile Network Code) - код оператора, LAC (Location Area Code) - код локальной зоны. В двух словах LAC - это объединение некоторого количества базовых станций, которые обслуживаются одним контроллером базовых станций (BSC). cell id - идентификатор базовой станции. С помощью этой информации можно узнать примерное местоположение вашего телефона. Учитывая то, что телефон подключён к сети для экстренных вызовов, вы теперь знаете, как вас смогут найти сверху mobile Другая, самая интересная на мой взгляд прошивка в этой ветке - mobile. Превращает ваш компьютер в телефон со всеми вытекающими плюшками (возможность просмотра трафика в wireshark, выполнение DTMF команд и комечто же звонки и смс-ки). Mobile использует телефон как физический уровень gsm, а всё остальное (layer 2-3) располагается на компьютере. Для нормальной работы нужна, конечно же, рабочая симка. Зальём прошивку на телефон: Код: Код:
#подключаем выключенный телефонВо второй консоли запускаем наш "мобильник" mobile, выступающий в качестве 2 и 3 уровня модели OSI Код:
~/osmocombb/master/src/host/layer23/src/mobile/mobile -i 127.0.0.1Код:
telnet 127.0.0.1 4247https://forum.antichat.xyz/attachmen...7204160554.png Ну разве не восхитительно! Пожалуй на этом я и закончу данную статью, она и так уже довольно затянулась. Желаю всем дешёвых моторол, удачной пайки, компиляции с первого раза и не забывать об УК РФ, прежде чем соберётесь поднимать свою BTS. |
Цитата:
До: https://forum.antichat.xyz/attachmen...368d0c4571.png После: https://forum.antichat.xyz/attachmen...7f181862ed.png https://forum.antichat.xyz/attachmen...0cab22e515.png За кастомный установщик отдельное спасибо! Я тоже намаялся. Советую все поднимать на 32-х битной системе. На 64 я пока так и не смог OpenBTS поднять. Hello World с горем пополам запустил. Так же не увидел на какой системе и с какой разрядностью настраивал? |
Цитата:
|
UDP: добавил описание системы в начало раздела software
|
В этих моторолках есть одна беда. Со временем контакты гарнитуры (через которую мы с осмокомом работаем) начинают плохо работать (нужно долго искать положение джека в гнезде гарнитуры, чтобы он работал). Выходом может быть припайка проводов напрямую к контактам гарнитурного входа на плате телефона (по моему опыту, стало работать на порядок стабильнее)
|
@Dr.Lafa отличная статья , четко , по делу и без соплей . Приятно было читать , за что и благодарю ,
Цитата:
|
Цитата:
|
Интересно, спасибо за статью
|
Продолжайте тему многим думаю будет очень интересно
|
очень понравилась статья. благодарю Dr.Lafa. добавлю немного по железкам... адаптер USB-TTL проще не выписывать, а зайти в любой сервис по ремонту сотовых телефонов и спросить у ребят дата кабели от старых телефонов. у многих они просто валяются в углу и давно не используются. можно даже найти именно под нужную модель телефона. встречаются дата кабели на разных чипах, на FT232, CP2102, PL2303.... и стоят они у них сущие копейки... я брал за 50-100 рублей... что касается мини джека, то я согласен с уважаемым swap3r. лучше припаять шнур прямо к контактам разъёма на плате. ведь всё равно будем разбирать телефон для переделки фильтра...
|
| Время: 00:45 |