基于this article,我尝试在android.According上模拟mifare卡管理APDU来接收APDU,我的应用程序应该回答正确的APDU,从而模拟mifare的行为。
使用rfidiot.py,读一张mifare卡片会给我:
> FF CA 00 00 00
< CD EA 7D 2B 90 0
Tag ID: CDEA7D2B
ATR: 3B8F8001804F0CA000000306030001000000006A
Setting Mifare Key A: FFFFFFFFFFFF
Authenticating to sector 00 with Mifare Key A (FFFFFFFFFFFF)
> FF 82 20 00 06 FF FF FF FF FF FF
< [] 90 0
> FF 88 00 00 60 00
< [] 90 0
OK
Dumping data blocks 01 to 01:
> FF 88 00 01 60 00
< [] 90 0
> FF B0 00 01 01
< [] 6C 10
> FF B0 00 01 10
< 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 0
01: 00000000000000000000000000000000 ................用我的应用程序模拟卡片,我得到了一个错误的行为:
> FF CA 00 00 00
< 08 F0 82 65 90 0
Tag ID: 08F08265
ATR: 3B80800101
Setting Mifare Key A: FFFFFFFFFFFF
Authenticating to sector 00 with Mifare Key A (FFFFFFFFFFFF)
> FF 82 20 00 06 FF FF FF FF FF FF
< [] 90 0
> FF 88 00 00 60 00
< [] 90 0
OK
Dumping data blocks 01 to 01:
> FF 88 00 01 60 00
< [] 90 0
> FF B0 00 01 01
< [] 69 81
Failed: Command incompatible with file structureFF B0 00 01 01 APDU命令出现错误。我不知道6981 APDU命令是从哪里来的..
有没有人能帮我解决这个"bug“?
发布于 2013-07-13 05:15:57
你想要做的事情是不可能的。@NikolayElenkov所做的是模拟ISO 7816-4兼容的卡。MIFARE Classic与ISO 7816-4不兼容(它不使用APDU命令和响应进行通信)。事实上,它甚至不符合ISO 14443-4 :它在ISO 14443-3之上使用专有加密。
事实是,从阅读器端看起来像APDU的通信,是因为您的阅读器在传递数据之前剥离了所有加密,并将数据包装在“虚拟”APDU中。这样,MIFARE卡可以与只能处理ISO 7816-4兼容卡的软件一起使用。
https://stackoverflow.com/questions/17594513
复制相似问题