pySIM

Wireless & RF v1.0 · 25.02.2021 не обновлялся >2 лет

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-безопасности.

v1.0.0
v1.0
25.02.2021 current
Добавлен 25.06.2026 · Обновлён 25.06.2026 · Wireless & RF
Установка
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
переведено ИИ

pySim — Инструменты для чтения, декодирования, просмотра SIM/USIM/ISIM/HPSIM/eUICC карт

Этот репозиторий содержит ряд программ на 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-shell и устаревшие инструменты

Хотя вы найдете множество онлайн-ресурсов, все еще описывающих использование pySim-prog.py и pySim-read.py, эти инструменты в настоящее время считаются устаревшими и были полностью вытеснены гораздо более функциональным pySim-shell.py. Мы настоятельно рекомендуем пользователям переходить на pySim-shell, если только у них нет очень специфических требований, таких как пакетное программирование большого количества карт, что является, пожалуй, единственным оставшимся вариантом использования устаревших инструментов.

Git-репозиторий

Вы можете клонировать из официального git-репозитория Osmocom, используя

git clone https://gitea.osmocom.org/sim-card/pysim.git

Веб-интерфейс доступен по адресу https://gitea.osmocom.org/sim-card/pysim.

Установка

Пожалуйста, установите следующие зависимости:

  • bidict
  • cmd2 >= 1.5.0
  • colorlog
  • construct >= 2.9.51
  • pyosmocom
  • jsonpath-ng
  • packaging
  • pycryptodomex
  • pyscard
  • pyserial
  • pytlv
  • pyyaml >= 5.4
  • smpp.pdu (из github.com/hologram-io/smpp.pdu)
  • termcolor

Пример для 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

Пользователи 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

Комментарии
Войдите, чтобы оставить комментарий