APDU在mifare classic上写入块命令

时间:2013-06-06 08:46:02

标签: nfc mifare apdu

我一直在尝试将一些数据写入我的mifare经典卡片。首先我发送这两个返回90 00的命令:

加载Mifare键:

  

FF 82 20 01 06 FF FF FF FF FF FF

身份验证

  

FF 86 00 00 05 01 00 01 60 01

现在我可以将命令写入扇区0和块1 + 2

  

ff d6 00 01 10 14 01 03 E1 03 E1 03 E1 03 E1 03 E1 03 E1 03 E1

     

ff d6 00 02 10 03 E1 03 E1 03 E1 03 E1 03 E1 03 E1 03 E1 03 E1

我错误地覆盖了第3块,几次使这个扇区看起来不可读:

如果我发送命令 ff d6 00 04 10我得到了返回错误69 82我用Google搜索了身份验证错误

我需要对每个部门进行身份验证吗?如果是这样,下一个和后续部门的命令是什么?

1 个答案:

答案 0 :(得分:9)

是的,您必须在读取/写入该扇区块之前对每个扇区进行身份验证。现在您已执行Authentication命令并覆盖块3(扇区预告片),这意味着密钥和访问权限已更改。< / p>

用于验证块的APDU: -

验证块的APDU格式应采用以下格式。

  

CLA + INS + P1 + P2 + Lc +(版本+ AddMSB + AddLSB + KeyID + KeyNumber)

例如: -

CLA = FF

INS = 86

P1 = 00

P2 = 01(身份验证的块号)

Lc = 05(数据字段长度)

数据字段=版本+ AddMSB + AddLSB + KeyId + KeyNumber

版= 01

AddMSB = 00

AddLSB = 05(Block Number)

KeyID = 60/61(keyA为60,keyB为61)

KeyNo = 00(读者的密钥槽位数)

  

FF 86 00 00 05 01 00 05 60 00