2013-07-11 72 views
2

根据this article,我试图仿效mifare卡管理android上的APDU。根据APDU接收,我的应用程序应该回答正确的APDU,从而模拟mifare的行为。卡仿真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 structure 

在FF B0出现错误00 01 01 APDU命令。我不知道6981 APDU命令来自哪里..

有人可以帮助我解决这个“bug”吗?

回答

2

你试图做什么是不可能的...... @NikolayElenkov做了什么是模仿ISO 7816-4兼容卡。 MIFARE Classic不符合ISO 7816-4标准(它不使用APDU命令和响应进行通信)。事实上,它甚至不符合ISO 14443-4标准:它使用ISO 14443-3之上的专有加密技术。

通讯看起来像来自读卡器端的APDU这一事实,是因为您的读卡器在传递数据并在“虚拟”APDU中包装数据之前剥去所有加密。这样,MIFARE卡可以与只能处理ISO 7816-4兼容卡的软件一起使用。

+0

只写这个评论,希望你可能有一分钟看看我关于NFCF的问题http://stackoverflow.com/q/17990618/2474385谢谢。 –

+0

亲爱的@NFC家伙,你可以看看我的问题:http://stackoverflow.com/questions/32842718/selecting-df-dedicated-file-in-s-mart-card-return-error-6981? –