FelicaのID(IDm)を読み込む


FelicaチップはSonyが開発した非接触型(リーダ/ライタ(以下,RW)にタッ チするだけで良い)のICカードで、SuicaやEdyなどに使われています。

Felicaには固有のID(IDmと呼ぶ)が割り振られているため、磁気カードやバー コードがついている会員証などと同様な使い方ができます。そのためには、ID を読み込む必要がありますが、敷居が低い方法から高い方法まで色々あるよう です。

方法 OS RWの数 RWの型番 難易度
ufelica Linux(BSD) 複数台可 RC-S310 簡単
libpasori Linux(Windows) 複数台可 RC-S320 大変(Linux上だと?)
2ch Widows 1台 RC-S320 とても簡単

ufelica


BSDまたはLinuxで動くように作られたプログラムです。古い型番(RC-S310)のRW に対応しています。コンパイルして簡単に動かすことができます。

ただし、IDmの表示が間違っていて、先頭に余分な「00」がついてい るようです。取得する範囲を修正することで正しく表示可能です。

USB機器を探していくので、コードを適切に修正することで、複数台のRWを接続 して読むことができます(確認済み)。


libpasori


Windows上のcyginでコンパイルして使うソフトです。libusbなどを必要とします。 私はLinux上でのみ動作確認しました。LinuxからだとRWからの読み込みに失敗 するようです。ufelicaのコードを参考にして修正したところ動くようになりま した。

このソフトは、IDmを取り出すだけでなく、保護されていない領域をダンプする こともできます。

USB機器を探していくので、コードを適切に修正することで、複数台のRWを接続 して読むことができます(確認済み)。


libpasori on 玄箱


玄箱にlibusbをインストールし、libpasoriでIDmを取得することができま す。

libusbのコンパイルは通りませんが、数行修正すると動きました。あまり良い 修正でない(不具合が招じる可能性がある)ことは分かっているのですが、動 いているのでとりあえず良としています。


2ch


2chのFelicaのソフトを作るスレッドに、ソースコードが公開されています。こ のソースコードをコンパイルすることで、Windows上でIDmを読み込むことがで きます。

このソフトは、FelicaのRW(Pasori)に附属のDLLを使って、実現しています。そ のAPIの関係から、1台のRWしか読めません(正規の開発環境を入手すればできる のかも知れませんが、これは未調査です)。


その他技術情報


RC-S310とRC-S320では、通信プロトコルが異なっているので、同じプログラムで 読み込むことはできません。