title_parttitle_parttitle_part
静岡県浜松市であれこれソフトを開発している A.K.I Software のブログです。日々の開発日記やサーバー・セキュリティ関連の話題なども掲載。
<< 2024/04 >>123456789101112131415161718192021222324252627282930
《《《 ネットワーク機器の購入は Amazon で! 》》》
Powered by BLOM PaSoRi(RC-S380)と PC/SC SmartCard API で Felica /Mifare カードを読んでみました。
小さくも大きくも閉じたりもしません
15/10/22 01:58 / IT関連

手持ちに PaSoRi があるので、Felica とか読んでみたいなーと思い、以前からちょっとした個人的なツールを有名な felicalib を使って作っていたのですが、ちょっと本業で Felica を使うことになりそうで、Sony の SDK を買って貰おうかなーと調べていたら、Windows の標準API に PC/SC ってのがあるのを思い出してあれこれやっていました。

が、しかし、なんも反応しません。
というかエラーしか返って来ません。なんで?と思ったら、手持ちのものは RC-S370 という奴で、PC/SC には対応しているように見せかけて実は使えません。
後継機種の RC-S380 という奴なら、PC/SC が利用できるという話なので、速攻で買ってきました。

PC/SC は今まで利用したことが無いので、検索したみたら、 http://eternalwindows.jp/ 様のサイトにて各APIの説明を発見!、基本的な使い方は載っていますのでこれでいけるんちゃうかな?と更に検索。

どうやら、winSCard.dll を使うらしい。
Eternalwindows 様によると winscard.h と winscard.lib が必要だそうです。

はい。ありません。Delphi ですので。
lib は使えませんのでどうでもいいとして、Windows SDK の中から winscard.h を探してきて、Delphi に移植します。
(全部は面倒なので、必要最低限のみ。関数も読むだけで使うのは8〜9個くらいですし)

winscard.h は Program Files\Microsoft SDKs\Windows\v7.1\Include の中に入っていました。

まぁ、Delphi で .h が無かったりするのは当たり前?なのでこの辺りは手馴れたもんです。

あとは、Eternalwindows 様のサイトを参考にコーディングしつつ、PC/SC Working Group の SDK もみつつ、あれこれやっていたら IDm の取得まではすんなり動きました。

この程度でも取り合えず充分だったので、nanaco などの IDm を読み出して「おー読める読める」と喜んでいたのですが、ここまでやるなら、内容の読み出しもしたいというのが本音です。

取り合えず APDU というパケットを PC/SC 経由で送信すればいいのはわかっているので、今度は Felica の SDK の中にある PDF を読みつつ(ブロックの構造体などはこれ見ないとわからないので)

photo


コードの中には苦労のあとが・・・(笑)

photo


「なるんかな?」って・・・(^-^;;;

ついでに、amazon で Felica Light-S と Mifare Standard / UltraLight のブランクカードも購入。
1枚から購入できるので便利です。
取り合えず、オレンジタグズさんで各3枚づつ購入。
(テストに使っていた nanaco とかは普段使っている物なので壊れたらイヤでしたし)

Felica については同じようなことをされている方も多いし、解析サイトなどもありますので割と情報があったので、サクサクとできたのですが、Mifare については全然情報がありません。

ただ幸いにも Mifare については以前仕事で利用したことがあり、その時はメーカー製の SDK も購入して貰っていて大体の構造と言うかアクセスの仕組みやカードの構造自体は理解していましたので(KeyA のブランクキー?とかってやったことが無いとわからないよね。これ)Felica よりは理解は簡単でした。
1回正常に動けば後は組み合わせを変えていくだけですので、ここまでくれば後は早いです。

photo


取り合えず出来上がったのはこんなんです。
IDm 以外にも、Felica や Mifare の block read も出来るようになりました。(write は気が向いたら作る程度。仕事の範囲では暫く利用しませんし)

取り合えず、Sony さんのライブラリも利用していませんし(Delphi じゃ利用できないしー)felicalib 等の外部ライブラリも利用せず、Windows の PC/SC のみで構築していますのでライセンス的にはフリーの状態で商利用(重要)も出来ます。(出来るはずです。ライセンス関係の隅々まで調べてひっかかる場所は無かったですし。Sony の SDK の PDF を読むだけでアウトなら別ですが、さすがにそれは制限できないでしょう。)

VCL で作っていますので、今後色々と応用ができるといいなー

[更新日付:2015/10/22 01:58:02]
トラックバックを見る(0)
Log Link [https://akisoftware.com/cgi-bin/blom.exe?akisoft+sl+cef4bb8ddd994d7a3d02a567b33babf9dd2d89c9]
TB Link [https://akisoftware.com/cgi-bin/blom.exe?akisoft+tb+cef4bb8ddd994d7a3d02a567b33babf9dd2d89c9]

記事へのコメント

コメントはありません

名前
コメントキー
 
コメントする時はキーを正確に入力して下さい
コメント
アドレスを含んだコメントはできません
© 2008-10 A.K.I Software all rights reserved.