Как получить доступ к SIM-карте программно?

Просто любая старая GSM-совместимая SIM-карта (бонус для 3G USIM).

Я предполагаю, что мне нужно некоторое оборудование? Может ли кто-нибудь рекомендовать что-то дешевое для любителя, и что-то более профессиональное?

Я предполагаю, что будут полные документы API с h/w, так что, возможно, это должно быть помечено как "не связанное с программированием"? Извините, если да.

Любые хорошие URL-адреса или книги (я знаком со стандартами 3GPP).

Я не (черная шляпа) взломал, не волнуйся, просто не доволен подобными секретарями SIM-карты, Data Doctor Recovery и т.д., поэтому хотел бы закодировать свой собственный, но может превратить его в коммерческую или предлагать услуги программирования SIM-карты (восстановление данных с поврежденной карты и т.д.) в качестве боковой линии.


Обновление: в то время как мне больше всего интересно просто читать мои SMS-сообщения для резервного копирования, это может быть бонус, если кто-то знает о дешевой записи на SIM-карте (чтобы я мог создать резервную копию всей или части SIM-карты и восстановить ее позже)

Ответы

Ответ 1

Вы можете сделать это с помощью любого считывателя смарт-карт ПК /SC (и писателя, как указывали другие), и программы, которые могут читать и анализировать данные для вас.

  • Разговор с картой осуществляется с помощью команд APDU (определенных в ISO-7816).
  • Набор команд, используемый картами SIM (2G) и USIM (3G), отличается, поэтому вы должны помнить об этом
  • Структура и формат файловой системы SIM-карты определяется в GSM 11.11 (для 2G) и ETSI TS 131.102 (для 3G) - вся эта документация общедоступна и доступна бесплатно
  • SMS хранятся в файле EF SMS, его имя - 0x6F3C, его структура определена в разделе 10.5.3 стандарта GSM 11.11.

Прямые ответы на ваши вопросы:

  • Здесь, где купите SIM-карту, нажмите "фото", чтобы увидеть фотографии устройства и скриншоты программного обеспечения.
  • Диспетчер SIM-карты - это программа, которая делает все, что вы хотите (включая чтение SMS, восстановление SMS, попытайтесь восстановить удаленные SMS - если они все еще физически находятся на карте)
  • A SDK для SIM-карты. Это DLL, которую вы можете загрузить и применить в своей программе. Эта вещь делает всю тяжелую работу для вас, все, что вам нужно, это создать графический интерфейс поверх нее.

Я один из людей из команды, которая создала SIM Manager и вышеупомянутый SDK.

Ответ 2

Вам наверняка понадобится считыватель смарт-карт и то, что я смог узнать, в значительной степени любой из них будет делать, потому что все они должны поддерживать стандартную функциональность. Они также оказались довольно дешевыми. Mine - OmniKey (не уверен, какая модель, потому что у меня ее нет сейчас).

Предполагая, что вы работаете под Windows, у Windows API есть функции, которые позволяют получить доступ к смарт-картам. Здесь - статья о CodeProject, которая более подробно описывает это как часть нескольких классов С#, которые дают вам доступ к кучу этого материала без необходимости болтаться с гайками и болтами. Я думаю, что приложение для примера парня специально предназначено для SIM-карт, поэтому, вероятно, это поможет.

Ответ 3

Там много продуктов и оборудования для чтения и записи SIM-карт, посмотрите http://forum.gsmhosting.com/vbb/f500/ на этом форуме, вы найдете много информация о сим-картах, мобильных телефонах.. один из самых больших ресурсов с 1999 года! для аппаратных программистов вы можете создать свой собственный, как JDM или ICprog.. проверьте kiscan.net для получения некоторой информации..

Ответ 4

Вы можете использовать инструмент simLAB для чтения и редактирования почти любого файла SIM. Он работает с каждым считывателем смарт-карт ПК /SC. Инструмент также позволяет вам резервировать файловую систему SIM.

Посмотрите https://github.com/kamwar/simLAB

Ответ 5

  • pySim

    В приведенном ниже примере мы меняем карты IMSI на 901700000003080 (опция -i), и мы указываем новый набор -n NAME (Имя оператора), -t TYPE (тип карты), -c CC (код страны), -x MCC (Мобильный код страны), -y MNC (код мобильной сети) и -s ID (ID карты).

    $./pySim-prog.py -p 0 -n OpenBSC -t sysmosim-gr1 -i 901700000003080 -c 001 -x 001 -y 02 -s 1791198229180000075 Достаточно ли просто заполнить новую SIM-карту новой мета и будет работать так же, как и оригинал? pyusb

    Здесь полный список опций

    $./pySim-prog.py -help Использование: pySim-prog.py [опции] Параметры:
    -h, --help показать это справочное сообщение и выйти из -d DEV, --device = DEV Serial Device для доступа к SIM-карте [по умолчанию:/dev/ttyUSB0] -b BAUD, --baud = BAUD Baudrate используется для доступа к SIM-карте [по умолчанию: 9600] -p PCSC, -pcsc-device = PCSC                          Какой номер считывателя ПК /SC для доступа к SIM-карте - TYPE, --type = TYPE Тип карты (список пользователей -t для просмотра) [по умолчанию: авто] -a PIN_ADM, --pin-adm = PIN_ADM                          PIN-код ADM, используемый для обеспечения (перезаписывает по умолчанию) -e, -erase Стереть заранее [по умолчанию: False]
    -S SOURCE, --source = SOURCE                          Источник данных [по умолчанию: cmdline] -n NAME, --name = NAME Имя оператора [по умолчанию: Magic] -c CC, --country = CC Код страны [по умолчанию: 1] -x MCC, --mcc = MCC Mobile Country Код [по умолчанию: 901] -y MNC, --mnc = Код мобильной сети MNC [по умолчанию: 55] -m SMSC, --smsc = SMSC SMSP [по умолчанию: '00 + код страны + 5555 '] -M SMSP, --smsp = SMSP Сырое содержимое SMSP в шестнадцатеричном формате [по умолчанию: авто из SMSC] -s ID, -iccid = ID Интегрированная идентификационная карточка схемы -i IMSI, --imsi = IMSI Международный идентификатор мобильного абонента - k KI, --ki = KI Ki (по умолчанию - рандомизация) -o OPC, --opc = OPC OPC (по умолчанию - для рандомизации) --op = OP Установите OP на вывести OPC из OP и KI --acc = ACC Установить бит ACC (Код контроля доступа). не все типы карт                          поддерживаются -z STR, --secret = STR Секрет, используемый для ICCID/IMSI autogen -j NUM, --num = NUM ​​Card #, используемый для ICCID/IMSI autogen --batch Включить пакетный режим [default: False] --batch-state = FILE Необязательный файл состояния партии
    --read-csv = FILE Чтение параметров из файла CSV, а не командной строки --write-csv = FILE Добавление сгенерированных параметров в CSV файл --write-hlr = FILE Добавление сгенерированных параметров в OpenBSC HLR sqlite3 --dry-run Выполняет "сухой запуск", на самом деле не программируйте карту

    Исходный код доступен.

  • Также SIM-карта - это просто смарт-карта. Вы можете использовать pyscard или pyusb работать на нем. Я нашел этот Q & A полезный.