2

I've wrote a simple app (C#) in order to execute some I/O operation on my Mifare Card through my smartcard reader (obviously, I've used some Win API wraps).

The only info about mifare I'm getting is "Mifare 1k"), but is there some way to know exact type of my mifare card? (example it could be Classic, DESFire, Plus, Ultralight..)?

Or maybe Mifare 1k description returned by my app would means it's just a Classic Mifare?

bit
  • 934
  • 1
  • 11
  • 32

2 Answers2

3

Vikky is right. In the ATR of the card you will find which is the exactly card type.

Check out this: http://www.acs.com.hk/drivers/eng/API_ACR122U_v2.00.pdf

In page 6 you have the ATR structure/format. The 15th and 16th bytes are de Card Name (type)

If you are getting "Mifare 1k" is referring to MiFare Classic 1K. Hope this helps you.

  • I think those are 13th and 14th bytes (If I start counting from 0). –  Sep 26 '13 at 08:04
  • Actually, this way is still not sufficient to discern between MIFARE Classic and MIFARE Plus, for instance. – kdmin Feb 13 '14 at 19:30
0

you can find the ATR(Answer to reset) of the card and analyze that ATR to find the card type.

Suppose ATR is 3b 8f 80 01 80 4f 00 00 00 00 03 00 00 02 00 00 00 00 69(not real)

if atrLength-0X6 = 1 then MIfare 1k

atrLength-0X6 = 2 then Mifare 4K

jiten
  • 5,128
  • 4
  • 44
  • 73
  • This is useful - so in your example (reading right to left) the 6th byte tells us this is MiFare 4k (02) - how do I tell if its MiFare 4K 4 byte or Mifare 4K 7 byte? – contool May 03 '17 at 10:59