2010-05-08 11 views
15

Tylko jakakolwiek stara karta SIM kompatybilna z GSM (premia za 3G USIM).Jak programowo uzyskać dostęp do karty SIM?

Zakładam, że potrzebuję jakiegoś sprzętu? Czy ktoś może polecić coś taniego dla hobbysty i coś bardziej profesjonalnego?

Zakładam, że będą pełne dokumenty API z h/w, więc może to powinno być oznaczone jako "nie związane z programowaniem"? Przepraszam, jeśli tak.

Wszelkie dobre adresy URL lub książki (jestem zaznajomiony ze standardami 3GPP).

Nie hakuję (czarny kapelusz), nie martw się, po prostu nie jestem zadowolony z tego, jak na przykład sekretarz karty SIM, program do odzyskiwania danych itp., Więc chciałbym zakodować własny, ale może go zmienić na komercyjny, lub oferować usługi programowania kart SIM (dane odzyskiwane z uszkodzonej karty itp.) jako pomoc.


Aktualizacja: a ja jestem zainteresowany przede wszystkim właśnie czyta moje SMS-y do tworzenia kopii zapasowych, może to być bonus, jeśli ktoś wie o tanie karty SIM pisarza (tak, że mogę wykonać kopię zapasową wszystkich lub części SIM i przywrócić później)

+1

Szukasz sposobu na odczyt karty SIM za pomocą czytnika kart? – Bernd

+0

tak, jestem. czy możesz polecić jakieś? – Mawg

Odpowiedz

19

Możesz to zrobić z każdym czytnikiem kart inteligentnych PC/SC (i pisarzem, jak wskazali inni) i programem, który może odczytać i przeanalizować dane za Ciebie.

  • Rozmowa z kartą odbywa się poprzez APDU poleceń (zdefiniowany w ISO-7816)
  • zestaw poleceń używany przez kartę SIM (2G) i USIM (3G) karty jest inny, więc trzeba mieć to na mind
  • Struktura i format systemu plików karty SIM jest zdefiniowany w GSM 11.11 (dla 2G) i ETSI TS 131.102 (dla 3G) - cała ta dokumentacja jest publicznie dostępna i dostępna bezpłatnie
  • SMS-y są przechowywane w pliku o nazwie EF SMS, jego nazwa to 0x6F3C, jego struktura jest określona w sekcji 10.5.3 GSM 11.11

bezpośrednich odpowiedzi na pytania:

  • Oto gdzie można buy a SIM reader, kliknij na „Zdjęcia” do fotek z urządzenia i zrzuty ekranu oprogramowania
  • SIM Manager zobaczyć to program, który robi wszystko, chcesz (w tym czytanie SMS-ów, przywracanie SMS-ów, może nawet próbować odzyskać usunięte SMS-y, jeśli nadal są fizycznie na karcie)
  • Dostępny jest również SIM card SDK. Jest to DLL, który możesz załadować i zastosować w swoim programie. Ta sprawa wykonuje całą ciężką pracę, wszystko czego potrzebujesz to stworzenie GUI na nim

Jestem jedną z osób z zespołu, który utworzył SIM Managera i wspomniany wcześniej SDK.

+0

Przeglądam stronę ETSI. Istnieje wiele specyfikacji i standardów. Którego muszę użyć, aby rozpocząć programowanie kart SIM i USIM? Czy powyższe specyfikacje nie są już aktualne? (Proszę wymienić specyfikacje dla różnych kart SIM) Dzięki. – Jean

+0

Mogą być nowe wersje tych standardów, ale podstawa jest tam i niezależnie od tego, czy dodana zostanie nowa funkcjonalność, rozszerzy te standardy, zamiast je zastąpić. Powinieneś użyć tego jako punktu wyjścia, a następnie będziesz mieć lepszy obraz tego, gdzie jeszcze szukać. – Alex

+0

GSM, ETSI, 3GPP? Do którego muszę się odnosić? Czy jest jakaś inna specyfikacja/standard dla (U) kart SIM? Czy mogę prosić, abyś dopasował te specyfikacje do koncepcji, na którą były ukierunkowane? – Jean

2

Istnieje wiele produktów i sprzętu do odczytu i zapisu kart SIM, spójrz na http://forum.gsmhosting.com/vbb/f500/ na tym forum znajdziesz mnóstwo informacji dotyczących kart SIM, telefonów komórkowych .. jeden z największych zasobów od 1999 roku! dla programistów sprzętowych, możesz zbudować własne, takie jak JDM lub ICprog. Sprawdź informacje na stronie kiscan.net.

+0

+1 Dzięki, że na pierwszy rzut oka wygląda dobrze. Sprawdzę to i skontaktuję się z Tobą. Niestety, jestem ściśle s/w, bez wiedzy h/w ogóle. – Mawg

4

Będziesz potrzebował czytnika kart inteligentnych i tego, co udało mi się znaleźć, całkiem wiele osób zrobi, ponieważ wszystkie muszą obsługiwać standardową funkcjonalność. Są również dość tanie. Mine to OmniKey (nie jestem pewien jaki model, ponieważ nie mam go tutaj teraz).

Zakładając, że programujesz w systemie Windows, interfejs API systemu Windows ma funkcje umożliwiające dostęp do kart inteligentnych. Here to artykuł na temat CodeProject, który omawia to bardziej szczegółowo jako część zestawu kilku klas C#, które dają dostęp do wielu takich rzeczy bez konieczności plączenia się z nakrętkami i śrubami. Myślę, że przykładowa aplikacja tego gościa jest przeznaczona specjalnie dla kart SIM, więc prawdopodobnie to pomoże.

+0

+1 To brzmi fantastycznie. Nie zdawałem sobie sprawy, że Windows ma do tego API. Sprawdzę to i skontaktuję się z Tobą. Dzięki jeszcze raz. – Mawg

+1

Bez problemu. :) Btw, czytnik kart inteligentnych == smartcard writer. Użyłem mojego "czytnika" OmniKey do zapisu danych na karcie pamięci SLE4442, która jest nieco inna, ponieważ nie jest tak prosta w obsłudze jak karta SIM, ale zasada jest taka sama. – dandan78

+0

+1 Dzięki za cynk. To mnie zaskoczyło. – Mawg

1

Możesz użyć narzędzia simLAB do czytania i edycji prawie każdego pliku SIM. Działa z każdym czytnikiem kart inteligentnych PC/SC. Narzędzie pozwala również na tworzenie kopii zapasowych systemu plików SIM.

Wystarczy popatrzeć na https://github.com/kamwar/simLAB

1
  1. pySim

    W poniższym przykładzie zmieniamy karty IMSI do 901700000003080 (Opcja -i) i jesteśmy określając nowy zestaw -n NAZWA (nazwa operatora), -t TYPE (typ karty), -c CC (kod kraju), -x MCC (mobilny kod kraju), -y MNC (kod sieci komórkowej) i -s ID (zintegrowany Circuit Card ID).

    $ ./pySim-prog.py -p 0 -n OpenBSC -t sysmosim-GR1 -i 901700000003080 -c 001 001 -x -y 02 -s 1791198229180000075 Czy to wystarczy wypełnienie nową kartę SIM z nowym meta i czy będzie działać tak samo jak oryginał? pyusb

    Oto pełna lista opcji

    $ ./pySim-prog.py -help użyciu: pySim-prog.py [opcje] Opcje:
    -h, --help wyświetla ten komunikat pomocy i kończy działanie -d DEV, --device = Urządzenie szeregowe DEV do dostępu do karty SIM [domyślnie:/dev/ttyUSB0] -b BAUD, --baud = Baudrate używana do dostępu do karty SIM [domyślnie: 9600] -p PCSC, --pcsc-device = PCSC Który numer czytnika PC/SC dla dostępu do karty SIM -t TYPE, --type = TYPE Typ karty (lista użytkowników do wyświetlenia) [domyślnie: auto] -a PIN_ADM, --pin-adm = PIN_ADM PIN ADM używany do obsługi (zastępuje domyślne) -e, --erase Erase wcześniej [domyślnie: False]
    -S SOURCE, --source = ŹRÓDŁO Źródło danych [domyślnie: cmdline] -n NAZWA, --name = NAZWA Nazwa operatora [default: Magic] -c CC, --country = CC Kod kraju [domyślnie: 1] -x MCC, --mcc = MCC Mobilny kod kraju [domyślnie: 901] -y MNC, --mnc = kod sieci komórkowej MNC [domyślnie: 55] -m SMSC, --smsc = SMSC SMSP [domyślnie: '00 + kod kraju + 5555 '] -M SMSP, --smsp = SMSP Nieprzetworzona zawartość SMSP na heksie [domyślnie: auto od SMSC] -s ID, --iccid = Identyfikator ID zintegrowanego ID karty I- IMSI, --imsi = IMSI International Mobile Subscriber Identity -k KI, --ki = KI Ki (domyślnie jest to randomizacja) -o OPC, --opc = OPC OPC (domyślnie jest to randomizacja) --op = OP Ustaw OP na uzyskując OPC z OP i KI --acc = ACC Ustaw bity ACC (kod kontroli dostępu). nie wszystkie typy kart: są obsługiwane -z STR, --secret = STR Tajne używane dla ICCID/IMSI autogen -j NUM, --num = NUM ​​Card # używane dla ICCID/IMSI autogen - partia Włącz tryb wsadowy [domyślnie : False] --batch-state = PLIK Opcjonalny plik stanu wsadowego
    --read-csv = PLIK Odczytać parametry z pliku CSV, a nie z wiersza poleceń --write-csv = PLIK Dołącz do wygenerowanych parametrów w pliku CSV - write- HLR = PLIK Dołącz generowane parametry do OpenBSC HLR sqlite3 --dry metę Przeprowadzić „sucho”, rzeczywistości nie programować kartę

    Kod źródłowy jest dostępny.

  2. Również karta SIM to tylko karta inteligentna. Możesz użyć pyscard lub pyusb, aby móc na nim operować. Uważam, że pomocna jest usługa this Q&A.

Powiązane problemy