読者です 読者をやめる 読者になる 読者になる

ふふーん

一緒にやりたくなったのよ!あなたと、調合を!

nfcpyでPASMOを読む

PASMOの履歴管理したいなーとおもったのでやってみる。

pythonでnfcpy使うのが一番楽そうなのかな。

Getting started — nfcpy 0.13.0 documentationを見るとまだpython3.xには未対応っぽい。

使ったNFCリーダーはAmazon | ソニー SONY 非接触ICカードリーダー/ライター PaSoRi RC-S380 | プリペイド電話カード オンライン通販

#!/usr/bin/python

import nfc

def on_connect(tag):
    print '\n'.join(tag.dump())

with nfc.ContactlessFrontend('usb') as clf:
    clf.connect(rdwr={'on-connect': on_connect})

これでNFCのタグをダンプできる。これを実行してPASMOをかざすとダンプできた。

デバイスにアクセスするのにroot権限必要かも(あとで調べる)。

$ sudo ./pasmo.py 
System 0003 (Suica)
Area 0000--FFFE
  Area 0040--07FF
    Random Service 1: write with key & read with key (0x0048 0x004A)
    Random Service 2: write with key & read w/o key (0x0088 0x008B)
...
      Random Service 96: write with key & read with key (0x1808 0x180A)
      Random Service 97: write with key & read with key (0x1848 0x184A)
      Random Service 98: write with key & read with key (0x1888 0x188A)

NFCを読めているらしい。PASMOのデータは

github.com

ここをみるとよさげ。