【发布时间】:2013-10-16 12:39:50
【问题描述】:
我对 Mifare Standard 1k 卡有疑问。我在地址为 62 的数据块上做了一个值块(00000001FFFFFFFE0000000100FF00FF - 有效?)。值块的值应该是 1,值块的地址是 0。
我已将数据块 2 的访问位更改为:
- C1=1
- C2=1
- C3=0
其他 2 个数据块具有工厂访问位。扇区尾部的访问位也发生了变化,它们是:
- C1=0
- C2=1
- C3=1
因此,对应扇区(第 16 个扇区)的访问位为 3B478C69(有效?)。
问题是我无法在该块上执行任何值块特定功能(递增、递减等),我总是得到6A81 作为响应->“卡被阻止或不支持命令”。
我使用的 APDU 是 FFF5C13E0400000001。
【问题讨论】:
-
您的访问位和块数据看起来还不错。你用什么读卡器来访问卡?您确定要发送给 MIFARE 阅读器的命令吗?
-
我使用的是 Omnikey 5021 CL 阅读器。我发送的命令如下(格式:CLA INS P1 P2 Lc Data In):FF F5 Opcode(C0-decrement, C1-increment, C2-restore) SourceBlock 04 Operand.
-
命令示例:FF F5 C1 56 04 00 00 00 01
-
我不确定您从哪里获得该命令,但用于 MIFARE 卡的 PC/SC 的 OMNIKEY 扩展(根据 OMNIKEY 非接触式智能卡读卡器开发指南)使用 FF D4 P1 P2 04 XX XX XX XX 递增和 FF D8 P1 P2 04 XX XX XX XX 递减,其中 P1 是块地址的 MSB,P2 是块地址的 LSB,XX XX XX XX 是递增/递减值(LSB 在前)。
-
顺便说一句。浏览我的代码示例发现,该用户手册的旧版本对这些命令使用的格式略有不同:FF D4 P1 P2 01 XX 用于递增,FF D8 P1 P2 01 XX 用于递减。
标签: nfc rfid mifare apdu contactless-smartcard