web-dev-qa-db-ja.com

プログラムでSIMカードにアクセスする方法は?

古いGSM互換のSIMカード(3G USIMのボーナス)だけです。

ハードウェアが必要だと思いますか?誰かが愛好家のために安いもの、そしてより専門的なものをお勧めできますか?

H/Wを備えたAPIの完全なドキュメントがあると思いますので、これは「プログラミング関連ではない」とタグ付けする必要がありますか?申し訳ありませんが、そうであれば。

良いURLや本(私は3GPP標準に精通しています)。

私はハッキングではありません(ブラックハット)、心配しないでください。SIMカード長官、Data Doctorリカバリなどが気に入らないので、自分でコーディングしたいのですが、商用にしたり、SIMカードを提供したりする可能性があります。副業としてプログラミングサービス(破損したカードからのデータ回復など)。


更新:私は主にバックアップのためにSMSを読むだけに関心がありますが、誰かが安価なSIMカードライターを知っていると(SIMの全部または一部をバックアップできるように)ボーナスになるかもしれません。後で復元します)

これは、任意の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.11のセクション10.5.3で定義されています

あなたの質問に対する直接の答え:

  • ここに SIMリーダーを購入する 、「写真」をクリックして、デバイスの写真とソフトウェアのスクリーンショットを表示します。
  • SIM Manager は、必要なすべてを実行するプログラムです(SMSの読み取り、SMSの復元を含む)。削除されたものの回復も試行できますSMS-それらがまだ物理的にオンの場合カード)
  • SIMカードSDK も利用できます。それはDLLプログラムにロードして適用できます。これはあなたのためにすべてのハードワークを行います、あなたが必要なのはその上にGUIを作成することだけです

私は、SIMマネージャーと前述のSDKを作成したチームの1人です。

21
ralien

あなたは確かにスマートカードリーダーを必要とします、そして私が知ることができたことから、それらはすべて標準機能をサポートしなければならないので、ほとんど誰でも行うでしょう。彼らはまたかなり安いです。 MineはOmniKeyです(現時点ではモデルがないため、モデルはわかりません)。

Windowsで開発していると仮定すると、Windows APIにはスマートカードへのアクセスを可能にする関数があります。 ここ は、ナットとボルトでもつれる必要なしにこのものの束にアクセスできるようにするいくつかのC#クラスのセットの一部としてこれをより詳細に議論するCodeProjectの記事です。男のサンプルアプリはSIMカード専用であると思うので、おそらく役立つでしょう。

4
dandan78

SIMカードを読み書きする製品やハードウェアはたくさんあります。このフォーラムで http://forum.gsmhosting.com/vbb/f500/ を参照してください。SIMカードに関する情報がたくさんあります。 、携帯電話.. 1999年以来最大のリソースの1つ!ハードウェアプログラマーは、JDMやICprogなどの独自のプログラムを構築できます。kiscan.netで情報を確認してください。

2
numediaweb
  1. 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
  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

ソースコードが利用可能です。

  1. また、SIMカードは単なるスマートカードです。 pyscard または pyusb を使用して操作できます。 このQ&A が役に立ちました。
1
theodor

simLABツールを使用して、ほとんどすべてのSIMファイルを読み取り、編集できます。すべてのPC/SCスマートカードリーダーで動作します。このツールでは、SIMファイルシステムをバックアップすることもできます。

https://github.com/kamwar/simLAB をご覧ください

1
amsterr