Статья Разбираемся с osmocom-bb

Приветствую, форумчане! В этой статье я хочу рассказать о том, как начать работать с osmocom-bb - проекте, позволяющем сделать из старой моторолы инструмент изучения и тестирования GSM сетей.
Я постараюсь дать достаточное количество информации, что бы вы без лишней боли смогли начать работу с osmocom.
18673


Osmocom? Впервые слышу!
Osmocom - это открытая имплементация стека протоколов GSM. Включает в себя программное обеспечение и инструменты, реализующие различные стандарты мобильной связи, включая GSM, DECT, TETRA и другие. Так описано на .

Osmocom-bb реализует клиентскую часть протокола GSM. Для этого используются телефоны на базе чипсета calypso и mediatek. К таким телефонам относятся, например, motorola c115, motorola c118, motorola c123, Neo 1973, SciphoneDreamG2. Полный список можно посмотреть на официальном сайте:

По сути osmocombb соединяет osmocom-совместимый телефон и компьютер с линукс (как львиноботы, соединяющиеся в одного супербота), позволяя программировать устройство для работы с gsm или использовать уже готовые проекты для, например, создания собственной базовой станции gsm (2G), устройства для снифинга gsm трафика и ещё .


Hardware
Для того, что бы начать работу с osmocom, нужно обзавестись некоторыми прибамбасами, а именно:
  • Телефон из списка доверенных (желательно motorola на базе e88, но об этом позже)
  • USB-UART конвертер
  • mini jack 2.5 mm TRS (3 контакта)
  • детали для замены фильтров (опционально)
А теперь подробнее

Телефон
Полный список допустимых телефонов можно посмотреть . Однако авторы рекомендуют использовать motorola c123 / motorola c118 (телефоны на базе E88), так как проект изначально затачивался именно под них. Телефоны на базе E87 (motorola c115 / c117) так же отлично подойдут: E88 и E87 идентичны на 99%.

Я взял motorola c118, так как их было проще всего найти, всё нижеописанное я буду проводить именно с ним. Купить телефоны можно на местной барахолке, в переходе или на авито. Цена вопроса - около 500 р. за штуку.

18672

Если вы собираетесь поднимать свою базовую станцию, то понадобится 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

18675


mini jack
Нужен обычный трёхконтактный (TRS) minijack 2.5 mm. Проблема в том, что на дворе 2018 год, и достать 2.5-милиметровый миниджек может быть проблематичным занятием. Если вы везунчик, и вам удалось найти трёхконтактный миниджек, то распайка будет такой:
  • RXD - наконечник
  • TXD - середина
  • GND - нижняя часть
Припаивать надо к RXD, TXD и GND конвертера соответственно.

Мне же, как наверняка и многим другим, удалось найти только "тюльпан" 3RCA TRRS (4 контакта). Под спойлером о том, как его подсоединять
Распайка примерно такая же: берём от начала RXD, TXD и GND, а нижний контакт оставляем пустым.
18676


Штекер в телефон нужно вставлять не полностью, а до того момента, когда начнёт светиться вторая лампочка на USB-TTL конвертере:
18670

обратите внимание на расположение контактов

Проверяем соединение
Что бы проверить связь, будем использовать minicom из под Linux (все дальнейшие действия будут проводиться под Debian 9.4 x86_64)
Выключаем телефон, соединяем с компьютером и в терминале ищем подключенный адаптер: ls /dev | grep ttyUSB
18708


Открываем конфигурацию minicom sudo minicom -s > Настройка последовательного порта, в Последовательный порт вводим найденный адаптер.
18709

Выбираем Выход, затем на телефоне коротко нажимаем кнопку включения. Если в выводе, помимо мусора, появилась надпись @ftmtoolerror, то можно переходить к сборке софтовой части.
18710

выход из minicom - ctrl + a, x, Enter


Software
Для начала определимся со структурой проекта: /opt/osmocom - библиотеки проекта и кросс-компилятор, ~/osmocombb - ветки проекта.
Все действия будут проводиться на Debian 9.4 x86_64

Собираем libosmocore
libosmocore - основная библиотека проекта, почитать про неё можно .
Bash:
su
#устанавливаем зависимости
apt-get update && apt-get install build-essential libtool libtalloc-dev shtool autoconf automake git-core pkg-config make gcc libpcsclite-dev
#создаём рабочее место
mkdir /opt/osmocom
cd /opt/osmocom
#клонируем основные библиотеки
git clone git://git.osmocom.org/libosmocore.git
#компилируем
cd libosmocore/
autoreconf -i
./configure
make
make install
ldconfig -i
cd ..

Собираем кросс-компилятор
У меня возникли проблемы со сборкой по , по этому я сделал .
Bash:
su
apt update && apt install libmpfr-dev libmpc-dev libgmp-dev libgnutls28-dev libgnutlsxx28 texinfo
cd /opt/osmocom
mkdir gnu-arm-toolchain
cd gnu-arm-toolchain
mkdir build install src
cd src/
качаем программы нужных версий
#в официальном мануале используется gcc версии 4.8.2, у меня скомпилировался только 4.9.4
wget http://ftp.gnu.org/gnu/gcc/gcc-4.9.4/gcc-4.9.4.tar.bz2
wget http://ftp.gnu.org/gnu/binutils/binutils-2.21.1a.tar.bz2
wget ftp://sources.redhat.com/pub/newlib/newlib-1.19.0.tar.gz
#разархивируем
tar jxvf gcc-4.9.4.tar.bz2
tar jxvf binutils-2.21.1a.tar.bz2
tar xfvz newlib-1.19.0.tar.gz
cd ../
# качаем установщик
wget https://raw.githubusercontent.com/DrLafa/gnu-arm-toolchain-installer/master/gnu-arm-build.sh
#даём права на исполнение
chmod +x gnu-arm-build.sh
#выполняем установку
./gnu-arm-build.sh
Этот установщик работает на Debian 9.4 x86_64 с gcc 6.3.0 и texinfo 6.3.0. С другими верияси gcc и texinfo могут быть проблемы.
После компиляции нужно прописать путь до бинарников в переменную PATH. Прописываем в конец файла .zshrc, .bashrc или каким ещё терминалом вы пользуетесь:
Код:
export PATH=/opt/osmocom/gnu-arm-toolchain/install/bin:${PATH}
На этом сборка кросс-компилятора закончена. Если возникли проблемы компиляции, можете писать в комментариях. Попробуем решить коллективно.

Собираем OsmocomBB
Настало время собрать основную ветку проекта
Код:
# создаём рабочее место
cd ~/
mkdir osmocombb
cd osmocombb
#клониурем основную ветку
git clone git://git.osmocom.org/osmocom-bb.git master
cd master/src
Тут стоит отметить, что если вы хотите иметь возможность отправлять трафик gsm (а не только принимать), то в файле src/target/firmware/Makefile практически в самом низу нужно раскомментировать строку CFLAGS += -DCONFIG_TX_ENABLE. Однако имейте ввиду, что вещание на частотах gsm в России регулируется законом, так что вас могут счесть за врага народа и отправить в концлагерь призвать к судебной ответственности. Подробнее читайте в разделе .

Чуть ниже есть 2 строки, раскомментировав которые, вы получите возможность загружать прошивку в постоянную память, а не только в RAM.
18647


Перед компиляцией основной ветки давайте поговорим о перепрошивке USB-TTL конвертера CP2102.
Перепрошивка требуется для работы на нестандартных скоростях. Это может понадобиться в некоторых ветках проекта.
Нам понадобится программа-прошивальщик. Скачать её можно .
Втавляем cp2102 в компьютер и выгружаем модуль ядра:
Код:
sudo rmmod cp210x
Запускаем прошивальщик, что бы убедиться, что всё в порядке:
Код:
sudo ./cp210x-program
18648


Он должен вывести таблицу скоростей, содержащей следующие значения:
Код:
[baudrate table]
[...]
921600 = FFE6, FFF6, 1 #  923077 Baud, 20 us
[...]
460800 = FFCC, FFEC, 1 #  461538 Baud, 40 us
[...]
230400 = FF98, FFD9, 1 #  230769 Baud, 78 us
[...]
115200 = FF30, FFB2, 1 #  115385 Baud, 156 us
[...]

На всякий случай сделаем бекап памяти конвертера:
Код:
sudo ./cp210x-program -f eeprom.hex

Теперь мы можем перепрошить конвертер:
Код:
sudo ./cp210x-program -p -F eeprom.hex -w --set-baudrate 812500:FFE2,FFF4,1 --set-baudrate 406250:FFC5,FFE9,1 --set-baudrate 203125:FF8A,FFD3,1

Проверяем работу:
Код:
sudo ./cp210x-program
В выводе таблицы скоростей теперь должны быть следующие значения:
Код:
[baudrate table]
[...]
812500 = FFE2, FFF4, 1 #  800000 Baud, 24 us
[...]
406250 = FFC5, FFE9, 1 #  406780 Baud, 46 us
[...]
203125 = FF8A, FFD3, 1 #  203390 Baud, 90 us
[...]
115200 = FF30, FFB2, 1 #  115385 Baud, 156 us
[...]
Переподключите конвертер. На этом перепрошивка завершена.
Итак, если у вас cp2102 и вы перепрошили его, то перед компиляцией основного проекта в файл src/host/osmocon/osmocon.c нужно добавить строку #define I_HAVE_A_CP210x
18649


Теперь вы готовы собрать основную ветку
Код:
cd ~/osmocombb/master/src/
make
Если компиляция завершилась без ошибок, то можно переходить к самому интересному. К тестированию


Тестируем
Прошивки ветки master для motorola c115, c118, c123 и прочих на платформе compal_e88 (и 87) находятся по пути src/target/firmware/board/compal_e88/
Прошивки заливаются на телефон с помощью . Синтаксис загрузчика следующий:
  • -m {c123,c123xor,c140,c140xor,c155,romload,mtk} - платформа телефона. Для motorola c118 это c123xor,
  • -p /dev/ttyXXXX - путь к USB-TTL конвертеру
  • -c - загрузка по цепочке. Указывается, если вы загружаете тяжеловесную прошивку, в названии которых фигурирует слово hightram (например rssi.highram.bin)
  • file.bin - прошивка
Для удобства я сделал ссылку на osmocon и добавил её в переменную PATH
Код:
cd ~/osmocombb/master/src/host/osmocon/
mkdir osmocon-link
ln -s ~/osmocombb/master/src/host/osmocon/osmocon osmocon

Выключаем телефон и подключаем к компьютеру
Код:
#идём в папку с прошивками
cd ~/osmocombb/master/src/target/firmware/board/compal_e88
osmocon -m c123xor -p /dev/ttyUSB0 hello_world.compalram.bin
#коротко жмём кнопку включения на телефоне. Начинается загрузка.

18653


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

Что со всем этим можно сделать
У osmocom . Есть, допустим, burst_int, нацеленный на снифинг gsm-трафика, emi для дос-атак на устройства gsm, но это всё темы для отдельных статей.

О том, что есть в ветке мастер (которую мы только что скомпилировали) можно почитать на оффициальном сайте: . Рассмотрим пример одной прошивки, использующей только телефон и другой, использующей телефон и компьютер одновременно.

RSSI
RSSI может работать без кмопьютера после прошивки. Он показывает системную информацию о базовой станции. Давайте загрузим эту прошивку на телефон:
Код:
#идём в папку с прошивками
cd ~/osmocombb/master/src/target/firmware/board/compal_e88
osmocon -m c123xor -p /dev/ttyUSB0 -c hello_world.compalram.bin
#коротко жмём кнопку включения на телефоне. Начинается загрузка.
Здесь используется параметр -c, так как это hightram-прошивка

После того, как прошивка загрузилась, в выводе терминала будет системная информация о ближайшей базовой станции. Есть возможность менять канал (ARFCN). А ещё он пикает, если нажать кнопку "вверх" :)
18662

С вышкой можно синхронизироваться (зелёная кнопка), тогда будет выдано ещё больше информации:
18664
Здесь 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) располагается на компьютере. Для нормальной работы нужна, конечно же, рабочая симка.

Зальём прошивку на телефон:
Код:
#подключаем выключенный телефон
cd ~/osmocombb/master/src/target/firmware/board/compal_e88
osmocon -m c123xor -p /dev/ttyUSB0 -c layer1.highram.bin
#коротко жмём на кнопку включения
Здесь, опять же, для загрузки прошивки использовался параметр -c, потому что для тяжеловесных прошивок используется загрузка по цепочке: сначала загружается кастомный загрузчик, который загружает прошивку типа hightram. Физическое взаимодействие с сетью (layer 1 модели OSI) запустился, сворачиваем это окно.

Во второй консоли запускаем наш "мобильник" mobile, выступающий в качестве 2 и 3 уровня модели OSI
~/osmocombb/master/src/host/layer23/src/mobile/mobile -i 127.0.0.1
Мобильник запущен. Мы можем подключиться к консоли управления через telnet:
telnet 127.0.0.1 4247

Давайте откроем wireshark и попробуем отловить смс-ку. В акуле телефон будет loopback-интерфейсом
18671

Ну разве не восхитительно!

Пожалуй на этом я и закончу данную статью, она и так уже довольно затянулась. Желаю всем дешёвых моторол, удачной пайки, компиляции с первого раза и не забывать об УК РФ, прежде чем соберётесь поднимать свою BTS.
 
Последнее редактирование:
люди помогите разобратся надоело уже блин собирать зависимости ни как не могу разобратся с пакетом
Bash:
root@0day:/opt/osmocom/libosmocore# ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking whether make sets $(MAKE)... (cached) yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for pkg-config... /usr/bin/pkg-config
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.20... yes
checking for ANSI C header files... (cached) yes
checking execinfo.h usability... yes
checking execinfo.h presence... yes
checking for execinfo.h... yes
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/timerfd.h usability... yes
checking sys/timerfd.h presence... yes
checking for sys/timerfd.h... yes
checking syslog.h usability... yes
checking syslog.h presence... yes
checking for syslog.h... yes
checking ctype.h usability... yes
checking ctype.h presence... yes
checking for ctype.h... yes
checking netinet/tcp.h usability... yes
checking netinet/tcp.h presence... yes
checking for netinet/tcp.h... yes
checking for size_t... yes
checking for working alloca.h... yes
checking for alloca... yes
checking for library containing dlopen... -ldl
checking for library containing dlsym... -ldl
checking for backtrace in -lexecinfo... no
checking for doxygen... false
checking whether SYS_getrandom is declared... yes
checking if gcc supports -fvisibility=hidden... yes
checking for clock_gettime... yes
checking for localtime_r... yes
checking whether struct tm has tm_gmtoff member... yes
checking for TALLOC... yes
checking for PCSC... yes
checking for LIBGNUTLS... no
configure: error: Package requirements (gnutls >= 2.12.0) were not met:

No package 'gnutls' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables LIBGNUTLS_CFLAGS
and LIBGNUTLS_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
я понимаю что этот gnutls относится к библиотеке gnutls-dev хз уже дохера че перекопал уже подкиньте еще какуюнибудь мыслю.
Здесь всё банально просто , ответ в строке ниже :

checking for LIBGNUTLS... no

отсутсвует библиотека ---->LIBGNUTLS
Установите библиотеку и...И ловите следующую ошибку )))

apt-get install libtalloc-dev libusb-1.0 libgnutls28-dev libsctp-dev
благодарю, но я эту проблему для себя решил .Я давал ответ предыдущему участнику.

всем привет можете помочь с у меня устоновлен Kali VMWARE Workstation я не могу разобраться ~/osmocombb/master/src Makefile

:-(


Посмотреть вложение 30434
Решил установить заново osmocombb на виртуалику и тоже застрял на этом моменте при запуске команды make .Думал здесь кто знает ответ , но ответа не нашёл :-/
 
люди помогите разобратся надоело уже блин собирать зависимости ни как не могу разобратся с пакетом
Bash:
root@0day:/opt/osmocom/libosmocore# ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking whether make sets $(MAKE)... (cached) yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for pkg-config... /usr/bin/pkg-config
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.20... yes
checking for ANSI C header files... (cached) yes
checking execinfo.h usability... yes
checking execinfo.h presence... yes
checking for execinfo.h... yes
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/timerfd.h usability... yes
checking sys/timerfd.h presence... yes
checking for sys/timerfd.h... yes
checking syslog.h usability... yes
checking syslog.h presence... yes
checking for syslog.h... yes
checking ctype.h usability... yes
checking ctype.h presence... yes
checking for ctype.h... yes
checking netinet/tcp.h usability... yes
checking netinet/tcp.h presence... yes
checking for netinet/tcp.h... yes
checking for size_t... yes
checking for working alloca.h... yes
checking for alloca... yes
checking for library containing dlopen... -ldl
checking for library containing dlsym... -ldl
checking for backtrace in -lexecinfo... no
checking for doxygen... false
checking whether SYS_getrandom is declared... yes
checking if gcc supports -fvisibility=hidden... yes
checking for clock_gettime... yes
checking for localtime_r... yes
checking whether struct tm has tm_gmtoff member... yes
checking for TALLOC... yes
checking for PCSC... yes
checking for LIBGNUTLS... no
configure: error: Package requirements (gnutls >= 2.12.0) were not met:

No package 'gnutls' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables LIBGNUTLS_CFLAGS
and LIBGNUTLS_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
я понимаю что этот gnutls относится к библиотеке gnutls-dev хз уже дохера че перекопал уже подкиньте еще какуюнибудь мыслю.
apt-get install libtalloc-dev libusb-1.0 libgnutls28-dev libsctp-dev
 
apt-get install libtalloc-dev libusb-1.0 libgnutls28-dev libsctp-dev
Если не сложно , помогите разрулить ситуацию схожую как у Anton Cernov (коммент выше).Если раньше не достающие библиотеки можно было выявить путём поиска в synaptic , то здесь такое не прокатило )
 
Если не сложно , помогите разрулить ситуацию схожую как у Anton Cernov (коммент выше).Если раньше не достающие библиотеки можно было выявить путём поиска в synaptic , то здесь такое не прокатило )

Вы без ошибок собрали и установили libosmocore и кросс-компилятор? Для сборки osmocom-bb не требуются ещё какие-либо зависимости вроде бы
 
Вы без ошибок собрали и установили libosmocore и кросс-компилятор? Для сборки osmocom-bb не требуются ещё какие-либо зависимости вроде бы
не заметил ошибок, но собирал на виртуалке Ubuntu 16.04 LTS 64 бит
 
Последнее редактирование:
Если не сложно , помогите разрулить ситуацию схожую как у Anton Cernov (коммент выше).Если раньше не достающие библиотеки можно было выявить путём поиска в synaptic , то здесь такое не прокатило )
Дайте ссылку на инструкцию, которой вы пользуетесь для установки osmocom-bb
 
Почему бы Вам не последовать инструкции от одного из разработчиков? Знакомство с OsmocomBB: 0x03 Software

Или можете попытаться сразу собрать базовую станцию: Запускаем GSM-сеть у себя дома

Если возникают проблемы с texinfo, то надо добавить патч patch-gcc46-texi.diff и прописать его в скрипте установки
 
Если возникают проблемы с texinfo, то надо добавить патч patch-gcc46-texi.diff и прописать его в скрипте установки
А по логу , что на скрине у Anton Cernov , что скажете ? Я у многих людей встречал данную ошибку , но все как то хитро выходили из ситуации .Типо не под рутом рекомендовали make запускать .Но я и так не под рутом запускал
 
А по логу , что на скрине у Anton Cernov , что скажете ? Я у многих людей встречал данную ошибку , но все как то хитро выходили из ситуации .Типо не под рутом рекомендовали make запускать .Но я и так не под рутом запускал
Я не пробовал инструкцию в начале этой темы, я сюда случайно, через поиск гугла, попал на чьё-то сообщение. Время будет, попробую эту инструкцию, но у меня не появлялась подобная ошибка. Ясно, что что-то с обновлением libosmocore во время сборки. Права рута нужны, если вы директорию сборки сделали не в домашней папке и для установки, а также добавления в кеш (sudo make install и sudo ldconfig). Чтобы не путаться, рекомендую первое время для обучения всё создавать в домашней папке root и, соответственно, от имени рута всё вообще делать (т. к. если вы какое-то действие сделаете под рутом, потом у вас не будет доступа к файлам и папкам от имени обычного пользвателя, измененным или созданным под рутом)

Инструкция в этой теме отличается только скриптом сборки, более новыми версиями gcc, binutils и newlib, а также использованием компилятора без eabi (для работы программы без операционной системы)

Но я и так не под рутом запускал
Если вы вводили команду su, то все последующие команды до команды exit или su <username> или закрытия сеанса терминала будут выполняться от имени root, о чем свидетельствует знак # в коммандной строке

Если не сложно , помогите разрулить ситуацию схожую как у Anton Cernov (коммент выше).Если раньше не достающие библиотеки можно было выявить путём поиска в synaptic , то здесь такое не прокатило )
Собрал с нуля osmocombb по инструкции в начале этой темы на виртуальной машине (VMware) Ubuntu 16.04 LTS Х64, всё получилось без проблем. Вы где-то совершаете ошибку, попробуйте заново и повнимательнее. Могу переслать Вам свой образ виртуальной машины.
 
Собрал с нуля osmocombb по инструкции в начале этой темы на виртуальной машине (VMware) Ubuntu 16.04 LTS Х64, всё получилось без проблем. Вы где-то совершаете ошибку, попробуйте заново и повнимательнее. Могу переслать Вам свой образ виртуальной машины.
Да , я нашёл ошибку.Спасибо за инструкции выше .Я не отредактировал файл $ gedit .bashrc перед компиляцией .Инструкция, точнее её часть ниже исправила проблему.
Код:
# Права администратора теперь не нужны.
$ su <ваша учетная запись>
$ cd ~
# Убедитесь, что директория /opt/osmocom/gnu-arm-toolchain/install/bin/ доступна и содержит
# исполняемые файлы кросс-компилятора, например, с помощью команды ls.
# Редактируем переменные среды:
$ gedit .bashrc
# Добавляем в самый конец файла строку:
# export PATH=$PATH:/opt/osmocom/gnu-arm-toolchain/install/bin/
# Не забываем сохраниться.
$ source .bashrc
# Проверим доступность исполняемых файлов:
$ arm-elf-gcc -v
# В результате чего должна появиться информация о компиляторе.
# В случае ошибки проверьте правильность пути к папке bin и его наличие в переменной PATH.
 
Проверить таким образом не удастся, другое название компилятора

Пробуйте arm-none-eabi-gcc -v

Желающие иметь последнюю (на данный момент 3.5) версию Wireshark с новыми диссекторами протоколов могут вручную собрать её из исходников используя tarball'ы. Скрипт в архиве прилагается.
Код:
mkdir wireshark
cd wireshark
wget https://www.wireshark.org/download/automated/src/wireshark-3.5.0rc0-59-g9613c943e074.tar.xz
tar -xpJf wireshark-3.5.0rc0-59-g9613c943e074.tar.xz
cd wireshark-3.5.0rc0-59-g9613c943e074
sudo tools/debian-setup.sh --install-optional --install-deb-deps --install-test-deps
dpkg-buildpackage -b -uc -us -jauto
cd ..
rm wireshark-{doc,dev,dbg}_*.deb
sudo dpkg -i *.deb
Проверено на виртуальной машине (VMware) Ubuntu 16.04 LTS Х64
 
Последнее редактирование модератором:
Проверить таким образом не удастся, другое название компилятора


Пробуйте arm-none-eabi-gcc -v
Возникла новая проблемка . Подключил шнурок с телефоном , даю команду :
Код:
wot@wot-VirtualBox:~$ cd ~/osmocombb/master/src/
wot@wot-VirtualBox:~/osmocombb/master/src$ host/osmocon/osmocon -m c140xor -p /dev/ttyUSB0 target/firmware/board/compal_e88/hello_world.compalram.bin
Cannot open serial device /dev/ttyUSB0
В виртуалбоксе вроде как добавил нужный usb .
 
Возникла новая проблемка . Подключил шнурок с телефоном , даю команду :
Код:
wot@wot-VirtualBmocombb/master/src$ host/osmocon/osmocon -m c140xor -p /dev/ttyUSB0 target/firmware/board/compal_e88/hello_world.compalram.bin
Cannot open serial device /dev/ttyUSB0
В виртуалбоксе вроде как добавил нужный usb .
Недостатчно прав у пользователя на доступ к портам. Есть несколько способов решения. Проще всего запустить с правами root, но потом не будет доступа к файлам osmocom у обычного пользователя без восстановления прав ручками.
Можно добавить пользователя в группу dialout. Можно непосредственно разрешить доступ всем пользователям к портам. Я удалил уже эту машину, на других не было таких заморочек.
Некоторые варианты дают разрешение только на один сеанс

Попробуйте поискать в гугле
Cannot open serial device /dev/ttyUSB


 
Код:
wot@wot-VirtualBox:~/osmocombb/master/src$ host/osmocon/osmocon -m c140xor -p /dev/ttyUSB0 target/firmware/board/compal_e88/hello_world.compalram.bin

Если у Вас Motorola C140, то вам нужно выбрать прошивку для вашего телефона compal_e86 а не 88, xor после модели добавлять не надо

Тут в самом конце шаблон строки запуска для вашей модели:
 
Добрый день, форумчане!
Заинтересовался данной темой после того как сам стал жертвой атаки. Если быть точнее, то прослушивали абонента с которым я вел переговоры по мобильному. Но, так как мы часто общались, было очень неприятно.
Человек который его прослушивал, заявил что заплатил за прослушку 100 т.р. После телефонных разговоров спустя некоторое время ему сбрасывали аудиофайл с содержанием переговоров. Но при этом это был только аудиофайл, ни к каким номерам привязки не было. Мне стало интересно, на каком уровне была совершена атака? Мое предположение, что на уровне сотового оператора.
Каковы ваши предположения? Спасибо!
 
configure: WARNING: unrecognized options: --disable-tests, --disable-tests
cd shared/libosmocore/build-target && make
make[1]: Verzeichnis „/root/osmocombb/master/src/shared/libosmocore/build-target“ wird betreten
make all-recursive
make[2]: Verzeichnis „/root/osmocombb/master/src/shared/libosmocore/build-target“ wird betreten
Making all in include
make[3]: Verzeichnis „/root/osmocombb/master/src/shared/libosmocore/build-target/include“ wird betreten
make[3]: Für das Ziel „all“ ist nichts zu tun.
make[3]: Verzeichnis „/root/osmocombb/master/src/shared/libosmocore/build-target/include“ wird verlassen
Making all in src
make[3]: Verzeichnis „/root/osmocombb/master/src/shared/libosmocore/build-target/src“ wird betreten
make all-am
make[4]: Verzeichnis „/root/osmocombb/master/src/shared/libosmocore/build-target/src“ wird betreten
CC timer.lo
In file included from /usr/include/x86_64-linux-gnu/sys/types.h:193,
from /root/osmocombb/master/src/target/firmware/include/string.h:4,
from ../../src/timer.c:38:
/root/osmocombb/master/src/target/firmware/include/endian.h:5:10: fatal error: sys/_types.h: Datei oder Verzeichnis nicht gefunden
#include <sys/_types.h>
^~~~~~~~~~~~~~
compilation terminated.
make[4]: *** [Makefile:509: timer.lo] Fehler 1
make[4]: Verzeichnis „/root/osmocombb/master/src/shared/libosmocore/build-target/src“ wird verlassen
make[3]: *** [Makefile:381: all] Fehler 2
make[3]: Verzeichnis „/root/osmocombb/master/src/shared/libosmocore/build-target/src“ wird verlassen
make[2]: *** [Makefile:507: all-recursive] Fehler 1
make[2]: Verzeichnis „/root/osmocombb/master/src/shared/libosmocore/build-target“ wird verlassen
make[1]: *** [Makefile:379: all] Fehler 2
make[1]: Verzeichnis „/root/osmocombb/master/src/shared/libosmocore/build-target“ wird verlassen
make: *** [Makefile:34: shared/libosmocore/build-target/src/.libs/libosmocore.a]
Привет
ты решил эту проблему?
 
У когото вышло на Osmocom запустить больше двух таймслотов в режиме базовой станции (подключить белее двух Моторол), прошу поделиться опытом, плз!
 
Всем привет ! , может кто то знает OS на подобии DragonOS для поднятия fake bts на этих моторолках ?
Ибо зебался компилить это все )
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!