4

我一直在尝试将一些数据写入我的 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 我用谷歌搜索为身份验证错误

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

4

1 回答 1

11

是的,您必须在对该扇区的块进行读/写之前对每个扇区进行身份验证。现在您已经执行了身份验证命令并覆盖了块 3(扇区尾部),这意味着密钥和访问权限已更改。

用于验证块的 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

添加MSB=00

AddLSB=05(块号)

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

KeyNo= 00(读卡器的键槽号)

法郎 86 00 00 05 01 00 05 60 00

于 2013-06-06T08:56:59.593 回答