Python-библиотека и CLI-инструмент для чтения, записи и анализа SIM/USIM-карт через стандартный интерфейс PC/SC или OpenBTS Transceiver. Поддерживает полный доступ к файловой системе UICC (EF, DF, MF), чтение IMSI, ICCID, Ki (при наличии ADM-пароля), SMSP, OPc, алгоритмов аутентификации MILENAGE и COMP128. Понимает карты 2G/3G/4G/5G: SIM, USIM, ISIM, CSIM. Интерактивный Shell-режим позволяет исследовать карту в реальном времени, писать скрипты автоматизации и тестировать нестандартные конфигурации. Ключевой инструмент Osmocom для исследования cellular-безопасности.
git clone https://github.com/osmocom/pysim cd pysim pip install -r requirements.txt # Запуск интерактивного Shell python pySim-shell.py -p 0 # Чтение IMSI, ICCID и другого python pySim-read.py -p 0 # Запись / программирование (нужен ADM-ключ) python pySim-prog.py -p 0 --type sysmoUSIM-SJS1 --imsi 001010000000001 --ki ... # Ридеры: ACS ACR38U, OMNIKEY 3121, SCM SCR3310
Этот репозиторий содержит ряд программ на Python, связанных с работой с модулями абонента (SIM) сотовых сетей, включая, но не ограничиваясь, SIM, UICC, USIM, ISIM, HPSIM и eUICC.
pySim-shell.py может использоваться для интерактивного изучения, чтения и декодирования содержимого
любой из поддерживаемых моделей карт / приложений карт. Более того, если
у вас есть учетные данные для вашей карты (ADM PIN), вы также можете записывать на карту,
т.е. редактировать её содержимое.pySim-read.py и pySim-prog.py — это устаревшие инструменты для пакетного программирования
некоторых очень распространенных параметров для целой партии программируемых картpySim-trace.py — это инструмент для глубокого декодирования трассировок протокола SIM-карт,
таких как те, что получены с помощью Osmocom SIMtrace2
или osmo-qcdiag.osmo-smdpp.py — это доказательство концепции GSMA SGP.22 Consumer eSIM SM-DP+ для лабораторных/исследовательских целей.contrib.Обратите внимание, что конфигурация управления доступом обычных серийных карт, выпускаемых операторами, значительно ограничивает, какие файлы может читать обычный пользователь, и особенно — записывать в них.
Поэтому полная функциональность pySim может использоваться только с так называемыми программируемыми SIM/USIM/ISIM/HPSIM картами, такими как различные программируемые карты sysmocom.
Такие SIM/USIM/ISIM/HPSIM карты — это специальные карты, которые, в отличие от выпускаемых обычными коммерческими операторами, идут с такими ключами, которые позволяют вам записывать файлы/поля, которые в норме может программировать только оператор.
Это особенно полезно, если вы запускаете собственную сотовую сеть и хотите настроить для нее собственные SIM/USIM/ISIM/HPSIM карты.
Пожалуйста, посетите официальную домашнюю страницу для получения инструкций по использованию, руководства и примеров.
Руководство пользователя pySim может быть построено из самого этого исходного кода с помощью sphinx (с sphinxcontrib-napoleon и sphinx-argparse). Смотрите файл Makefile в каталоге 'docs'.
Предварительно отрендеренное HTML-руководство пользователя для текущего 'git master' pySim доступно по адресу https://downloads.osmocom.org/docs/latest/pysim/, а версия для скачивания в формате PDF опубликована по адресу https://downloads.osmocom.org/docs/latest/osmopysim-usermanual.pdf.
Немного устаревшее видеопрезентацию о pySim-shell можно найти по адресу https://media.ccc.de/v/osmodevcall-20210409-laforge-pysim-shell.
Хотя вы найдете множество онлайн-ресурсов, все еще описывающих использование
pySim-prog.py и pySim-read.py, эти инструменты в настоящее время считаются устаревшими и были
полностью вытеснены гораздо более функциональным
pySim-shell.py. Мы настоятельно рекомендуем пользователям переходить на pySim-shell, если только
у них нет очень специфических требований, таких как пакетное программирование большого
количества карт, что является, пожалуй, единственным оставшимся вариантом использования
устаревших инструментов.
Вы можете клонировать из официального git-репозитория Osmocom, используя
git clone https://gitea.osmocom.org/sim-card/pysim.git
Веб-интерфейс доступен по адресу https://gitea.osmocom.org/sim-card/pysim.
Пожалуйста, установите следующие зависимости:
github.com/hologram-io/smpp.pdu)Пример для Debian:
sudo apt-get install --no-install-recommends \
pcscd libpcsclite-dev \
python3 \
python3-setuptools \
python3-pycryptodome \
python3-pyscard \
python3-pip
pip3 install --user -r requirements.txt
После установки всех зависимостей приложения pySim pySim-read.py, pySim-prog.py и pySim-shell.py
могут быть запущены непосредственно из клонированного репозитория.
В дополнение к вышеуказанным зависимостям pySim-trace.py требует установленных tshark и пакета Python pyshark.
Известно, что пакет tshark
в версиях Debian до 11 может не работать с pyshark.
Пользователи Archlinux могут установить пакет python-pysim-git
из Arch User Repository (AUR).
Наиболее удобный способ — использование помощника AUR,
например yay или pacaur.
Следующий пример показывает установку с помощью
yay.
# Установка
yay -Sy python-pysim-git
# Удаление
sudo pacman -Rs python-pysim-git
Мы приветствуем любые обсуждения, связанные с pySim, в разделе SIM Card Technology форума osmocom (на базе веба).
Для этого проекта нет отдельного списка рассылки. Однако, обсуждения, связанные с pySim, происходят в списке рассылки simtrace simtrace@lists.osmocom.org, пожалуйста, смотрите https://lists.osmocom.org/mailman/listinfo/simtrace для вариантов подписки и архива списка.
Пожалуйста, соблюдайте правила списка рассылки Osmocom при отправке сообщений.
Мы используем трекер проблем проекта pysim на osmocom.org для отслеживания состояния отчетов об ошибках и запросов на улучшение. Не стесняйтесь отправлять любые обнаруженные проблемы или помогайте нам, решая существующие проблемы.
Наши стандарты кодирования описаны по адресу https://osmocom.org/projects/cellular-infrastructure/wiki/Coding_standards
Мы используем процесс проверки патчей на базе gerrit, описанный по адресу https://osmocom.org/projects/cellular-infrastructure/wiki/Gerrit