2010-05-08 8 views
15

기존의 GSM 호환 SIM 카드 (3G USIM 보너스).SIM 카드에 프로그래밍 방식으로 액세스하려면 어떻게해야합니까?

하드웨어가 필요하다고 생각하십니까? 누구든지 취미 인에게 값싼 것을 추천 할 수 있습니까?

나는 h/w가있는 API의 전체 문서가 있다고 가정하므로 "프로그래밍 관련 없음"이라고 태그를 지정해야합니까? 미안, 그렇다면.

좋은 URL이나 책 (3GPP 표준을 잘 알고 있습니다).

저는 해킹이 아니라, SIM 카드 비서관, 데이터 닥터 리커버리 (Data Doctor Recovery) 등을 좋아해서 걱정하지 않으셔도됩니다. 내 자신의 코드를 작성하고 싶지만 상업용으로 설정할 수도 있습니다. 또는 SIM 카드 프로그래밍 서비스 (손상된 카드 등에서 데이터 복구)를 부업으로 제공 할 수 있습니다.


업데이트 : 나는 동안 주로 관심을 누군가가 (싼 SIM 카드 작가의 알고 있다면 바로 백업을 위해 내 SMS를 읽는 것은, 그것은 보너스 될 수 나는 백업 전부 또는 SIM의 일부가 복원 할 수 있도록 나중에)

+1

카드 판독기로 SIM을 읽을 방법을 찾고 계십니까? – Bernd

+0

예, 그렇습니다. 당신은 어떤 것을 추천 할 수 있습니까? – Mawg

답변

19

PC/SC 스마트 카드 판독기 (및 작성자, 다른 사람이 지적한대로)와 데이터를 읽고 구문 분석 할 수있는 프로그램을 사용하여이를 수행 할 수 있습니다. 카드에 이야기

  • APDU를 통해 수행되는 명령 (정의 ISO-7816) 당신이 그것을 유지하는 그래서
  • SIM (2G) 및 USIM (3G) 카드에 사용되는 명령 세트는, 다른 마음
  • SIM 카드의 파일 시스템 구조와 형식은 GSM 11.11 (2G 용) 및 ETSI TS 131.102 (3G 용)에 정의되어 있습니다.이 설명서는 모두 공개되어 무료로 제공됩니다.
  • SMS는 EF SMS라는 파일에 저장되어있는 경우, 그 이름은 0x6F3C이며, 그 구조는 GSM 11.5.3 절에 정의되어있다.질문 11

직접 답변을 :

  • 다음은 어디 buy a SIM reader에, 소프트웨어
  • SIM Manager의 장치의 사진과 스크린 샷을보고 '사진'을 클릭 모든 것을 수행하는 프로그램입니다 (SMS 읽기, SMS 복원, 삭제 된 SMS 복구를 시도 할 수도 있습니다. 카드에 여전히 물리적 인 경우)
  • SIM card SDK도 사용할 수 있습니다. 프로그램에서로드하여 적용 할 수있는 DLL입니다. 이 일은 당신을 위해 모든 노력을 기울일뿐입니다. GUI를 만들면됩니다.

저는 SIM 관리자와 앞서 언급 한 SDK를 만든 팀원 중 한 명입니다.

+0

나는 ETSI 웹 사이트를 탐구한다. 많은 규격과 표준이 있습니다. SIM 카드 및 USIM 카드 프로그래밍을 시작하는 데 사용해야하는 것은 어느 것입니까? 위에서 언급 한 사양이 구형이 아닙니까? (다른 SIM 카드에 대한 사양을 언급하십시오) 감사. – Jean

+0

이러한 표준의 새 개정판이있을 수 있지만 기초가 있으며 추가 된 새로운 기능은 대체하지 않고 표준을 확장합니다. 이를 출발점으로 사용해야하며 이후에 다른 곳을 더 잘 볼 수 있습니다. – Alex

+0

GSM, ETSI, 3GPP? 어느 쪽을 참조해야합니까? (U) SIM 카드에 대한 다른 규격/표준이 있습니까? 이 사양을 목표로 삼은 개념에 맞춰 줄 것을 요청할 수 있습니까? – Jean

2

SIM 카드를 읽고 쓰는 데는 많은 하드웨어가 있습니다.이 포럼에서 http://forum.gsmhosting.com/vbb/f500/을 보면 심 카드, 휴대 전화에 관한 많은 정보를 찾을 수 있습니다. 1999 년 이래 가장 큰 리소스 중 하나입니다! 하드웨어 프로그래머를 위해 JDM 또는 ICprog처럼 자신 만의 시스템을 구축 할 수 있습니다. 일부 정보는 kiscan.net에서 확인하십시오.

+0

+1 감사합니다. 언뜻보기에 좋았습니다. 나는 그것을 밖으로 체크하고 당신에게 돌아갈 것이다. 슬프게도, 나는 엄격하게 s/w이고 h/w 지식이 전혀 없습니다. – Mawg

4

분명히 스마트 카드 판독기가 필요할 것입니다. 모든 사람들이 표준 기능을 지원해야하기 때문에 많은 일을 할 것입니다. 그들은 또한 꽤 싸게 일어난다. 내 것은 옴니 키 (OmniKey)입니다 (당장이 모델이 없기 때문에 어떤 모델인지 모르겠습니다).

Windows에서 개발 중이라고 가정하면 Windows API에는 스마트 카드에 액세스 할 수있는 기능이 있습니다. Here은 CodeProject에 대한 기사로, 너트와 볼트를 사용하지 않고도 여러 가지 C# 클래스 세트에 액세스 할 수있게 해주는 C# 클래스 집합의 일부로 더 자세히 설명합니다. 나는 그 사람의 예제 응용 프로그램이 SIM 카드를위한 것이라고 생각합니다. 아마 도움이 될 것입니다.

+0

+1 환상적입니다. 윈도우가 API를 가지고 있다는 것을 몰랐다. 나는 그것을 밖으로 체크하고 당신에게 돌아갈 것이다. 다시 한번 감사드립니다. – Mawg

+1

문제 없습니다. :) Btw, 스마트 카드 리더 == 스마트 카드 작가. 필자는 OmniKey "리더"를 사용하여 SLE4442 메모리 스마트 카드에 데이터를 기록했습니다. 이는 SIM 카드로 작동하기가 쉽지 않은 점에서 다소 다르지만 원리는 같습니다. – dandan78

+0

+1 팁 주셔서 감사합니다. 그게 나를 놀라게했다 – Mawg

1

거의 모든 SIM 파일을 읽고 편집하려면 simLAB 도구를 사용할 수 있습니다. 모든 PC/SC 스마트 카드 판독기에서 작동합니다. 이 도구는 또한 SIM 파일 시스템을 백업 할 수 있습니다.

https://github.com/kamwar/simLAB

1
아래의 예에서
  1. pySim

    에서보세요, 우리는 901700000003080 (옵션 -i)에 카드의 IMSI를 변경하고 우리의 새로운 세트를 지정하는 -n 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 카드를 충전인가 메타와 동일하게 작동합니까 원본? pySim-PROG : 옵션

    $ ./pySim-prog.py -help 사용의 pyusb

    여기에 전체 목록.py [options] 옵션 :
    -h, --help이 도움말 메시지를 표시하고 종료합니다. -d DEV, --device = DEV SIM 액세스를위한 직렬 장치 [기본값 :/dev/ttyUSB0] -b BAUD, --baud = BAUD Baudrate가 SIM 액세스에 사용됨 [기본값 : 9600] -p PCSC, --pcsc-device = PCSC SIM 액세스를위한 PC/SC 리더기 번호 -t TYPE, --type = TYPE 카드 유형 (사용자 -t 목록을 볼 수 있음) [기본값 : 자동] -a PIN_ADM, --pin-adm = PIN_ADM 프로비저닝에 사용되는 ADM PIN (기본값을 덮어 씀) -e, --erase 미리 지우기 [기본값 : False]
    -S SOURCE, --source = 출처 데이터 소스 [기본값 : cmdline] -n NAME, --name = NAME 운영자 이름 [기본값 : Magic] -c CC, - 국가 = CC 국가 코드 [기본값 : 1] -x MCC, - mcc = MCC 모바일 국가 코드 [기본값 : 901] -y MNC, --mnc = MNC 모바일 네트워크 코드 [기본값 : 55] -m SMSC, --smsc = SMSC SMSP [기본값 : '00 + 국가 코드 + 5555] -M SMSP, --smsp = SMSP 16 진수 SMSP 콘텐츠 [기본값 : SMSC의 자동 ] -s ID, --iccid = ID 집적 회로 카드 ID -i IMSI, --imsi = IMSI 국제 이동 가입자 신원 -k KI, --ki = KI Ki (기본값은 랜덤 화) -o OPC, --opc = OPC OPC (기본값은 랜덤 화) --op = OP OP를 OP와 KI에서 OPC를 유도하도록 설정합니다. --acc = ACC ACC 비트를 (액세스 제어 코드)로 설정합니다. 모든 카드 유형이 아님 지원됨 -z STR, --secret = STR ICCID/IMSI autogen -j NUM, --num = NUM에 사용되는 암호 에 사용되는 카드 번호 ICCID/IMSI autogen - 배치 배치 모드 사용 [기본값 : False] --batch-state = FILE 선택적 배치 상태 파일
    --read-csv = FILE 명령 행보다는 CSV 파일에서 매개 변수 읽기 --write-csv = FILE 에 생성 된 매개 변수 추가 CSV 파일 - HLR = FILE 추가]은 '드라이 런'을 수행, 실제로 카드

    소스 코드를 사용할 수있는 프로그램하지 않는 OpenBSC HLR sqlite3를 --dry-실행하려면 매개 변수를 생성합니다.

  2. 또한 SIM 카드는 스마트 카드 일뿐입니다. pyscard 또는 pyusb을 사용하여 조작 할 수 있습니다. 나는 this Q&A 도움이되었다.

관련 문제