1

我使用 mifare classic 1k 卡,但遇到了麻烦。我想重写扇区 0x23 的访问位。现在扇区尾部包含这些字节:42 5a a8 b7 10 84 17 80 fe 0b c9 1e 70 e2 ef b0,其中

键 A = 42 5a a8 b7 10 84

键 B = c9 1e 70 e2 ef b0

访问位 = 17 80 fe 0b

我发现如果我想在扇区尾部写入数据,我需要使用密钥 A 进行身份验证。好的,没问题,我知道密钥 A。身份验证后,我构建 APDU 用于更新扇区预告片:

FF D6 00 23 10 42 5A A8 B7 10 84 17 84 FA 0B C9 1E 70 E2 EF B0

并发送。但我的代码 63 00 有错误。我做错了什么?

4

2 回答 2

3

访问位17 80 FE解码为 C1 = 0x8、 C2 =0xE和 C3 = 0xF,因此访问位为:

  • (C1 C2 C3)_3 =1 1 1
  • (C1 C2 C3)_2 =0 1 1
  • (C1 C2 C3)_1 =0 1 1
  • (C1 C2 C3)_0 =0 0 1

因此,数据块 0 允许使用密钥 A 和 B 进行读取和递减访问,数据块 1 和 2 允许使用密钥 B 进行读取和写入访问。secor 尾部(块 3)是永久写保护的(仅使用密钥 A 和 B 进行读取访问访问位是允许的)。

所以你不能更新那个 secor 的预告块,因为它是永久写保护的。

于 2014-02-21T06:18:46.360 回答
0

我目前也面临这个问题,作为一个探索 RFID 机制和概念的初学者。简而言之,我认为一旦写了一张卡,0扇区就不能再编辑了,这就像刻录CD-R盘一样。

这是一种痛苦,因为我在试图实现我的愿望的过程中浪费了 3 张牌。结果,获得了宝贵的知识。

如果我的理解是正确的,尾部块配置了值块的安全性,因为位于扇区 0 的块包含唯一标识符、协议和标准等重要数据,因此只能写入一次。

于 2017-02-01T15:09:27.457 回答