Как получить доступ к SIM-карте программно?
просто любая старая GSM-совместимая SIM-карта (бонус для 3G USIM).
Я полагаю, мне нужно оборудование? Может ли кто-нибудь порекомендовать что-то дешевое для любителя и что-то более профессиональное?
Я предполагаю, что будут полные документы API с h/w, поэтому, возможно, это должно быть помечено как "не связанное с программированием"? Прости, если так.
любые хорошие URL-адреса или книги (я знаком со стандартами 3GPP).
Я не (черная шляпа) взлом, не волнуйтесь, просто не доволен такими, как секретарь SIM-карты, восстановление данных врача и т. д., Поэтому хотел бы кодировать свой собственный, но может превратить его в коммерческий или предложить услуги по программированию SIM-карты (восстановление данных с поврежденной карты и т. д.) В качестве боковой линии.
обновление: хотя мне в первую очередь интересно просто читать мои SMS для резервного копирования, это может быть бонус, если кто-то знает о дешевом писателе SIM-карты (так что я могу создать резервную копию всех или части SIM-карты и восстановить ее позже)
5 ответов
вы можете сделать это с любым считывателем смарт-карт PC/SC (и writer, как указывали другие) и программой, которая может читать и анализировать данные для вас.
- разговор с картой осуществляется с помощью команд 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.
вам, безусловно, понадобится считыватель смарт-карт, и из того, что я смог узнать, почти любой из них будет делать, потому что все они должны поддерживать стандартную функциональность. К тому же они довольно дешевые. Мой-OmniKey (не уверен, какая модель, потому что у меня ее сейчас нет).
предполагая, что вы разрабатываете под Windows, API Windows имеет функции, которые позволяют получить доступ к смарт-картам. здесь это статья о CodeProject, которая обсудите это более подробно как часть набора нескольких классов C#, которые дают вам доступ к куче этого материала без необходимости связываться с гайками и болтами. Я думаю, что пример приложения парня специально для SIM-карт, так что это, вероятно, поможет.
есть много продуктов и оборудования для чтения и записи SIM-карт, посмотрите на http://forum.gsmhosting.com/vbb/f500/ на этом форуме вы найдете много информации о sim-картах, мобильных телефонах.. один из самых больших ресурсов с 1999 года! для аппаратных программистов вы можете создать свой собственный, как JDM или ICprog.. проверка kiscan.net для информации..
можно использовать simLAB инструмент для чтения и редактирования практически любого SIM-файла. Он работает с каждым читателем смарт-карты ПК / СК. Инструмент также позволяет создавать резервные копии файловой системы SIM.
посмотреть https://github.com/kamwar/simLAB
-
в приведенном ниже примере мы меняем IMSI карты на 901700000003080 (опция-i) и мы указываем новый набор-N имя (Имя оператора), - T тип (тип карты), - 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-карту новым meta и будет ли он работать так же, как оригинал? pyusb
вот полный список вариантов:
$ ./pySim-prog.py -help
Usage: pySim-prog.py [options] Options:
-h, --help show this help message and exit
-d DEV, --device=DEV Serial Device for SIM access [default: /dev/ttyUSB0]
-b BAUD, --baud=BAUD Baudrate used for SIM access [default: 9600]
-p PCSC, --pcsc-device=PCSC
Which PC/SC reader number for SIM access
-t TYPE, --type=TYPE Card type (user -t list to view) [default: auto]
-a PIN_ADM, --pin-adm=PIN_ADM
ADM PIN used for provisioning (overwrites default)
-e, --erase Erase beforehand [default: False]
-S SOURCE, --source=SOURCE
Data Source[default: cmdline]
-n NAME, --name=NAME Operator name [default: Magic]
-c CC, --country=CC Country code [default: 1]
-x MCC, --mcc=MCC Mobile Country Code [default: 901]
-y MNC, --mnc=MNC Mobile Network Code [default: 55]
-m SMSC, --smsc=SMSC SMSP [default: '00 + country code + 5555']
-M SMSP, --smsp=SMSP Raw SMSP content in hex [default: auto from SMSC]
-s ID, --iccid=ID Integrated Circuit Card ID
-i IMSI, --imsi=IMSI International Mobile Subscriber Identity
-k KI, --ki=KI Ki (default is to randomize)
-o OPC, --opc=OPC OPC (default is to randomize)
--op=OP Set OP to derive OPC from OP and KI
--acc=ACC Set ACC bits (Access Control Code). not all card types are supported
-z STR, --secret=STR Secret used for ICCID/IMSI autogen
-j NUM, --num=NUM Card # used for ICCID/IMSI autogen
--batch Enable batch mode [default: False]
--batch-state=FILE Optional batch state file
--read-csv=FILE Read parameters from CSV file rather than command line
--write-csv=FILE Append generated parameters in CSV file
--write-hlr=FILE Append generated parameters to OpenBSC HLR sqlite3
--dry-run Perform a 'dry run', don't actually program the card
исходный код доступен.