解决Mifare超轻NFC标签的内容



我目前正在与NFC/NDEF合作,我遇到了一个无法理解数据的问题。我对NDEF标准有一般的了解和看过Mifare数据表,所以我可以挑选一些东西,但是有几个字节似乎不合时宜,很困惑。

这是标签上数据的Hexdump,通过nfc-mfultralight r收集:

00000000  04 02 2f a1 d2 11 5f 81  1d 48 00 00 e1 10 12 00  |../..._..H......|
00000010  01 03 a0 0c 34 03 1b 91  01 05 54 02 65 6e 68 69  |....4.....T.enhi|
00000020  11 01 05 54 02 65 6e 68  69 51 01 05 54 02 65 6e  |...T.enhiQ..T.en|
00000030  68 69 fe 00 00 00 00 00  00 00 00 00 00 00 00 00  |hi..............|

我知道第一个16个字节(04 02 2f a1 d2 11 5f 81 1d 48 00 00 e1 10 12 00(是NFC/Mifare标头(前9个是序列号/检查字节,内部1个字节为1个字节,锁定为2个字节,然后最后4个是OTP字节。(

从字节开始21开始,我可以看到末端带有终端TLV标志的TLV记录的开始(03 1b ... fe(,指示具有长度27的NDEF类型的记录。这匹配了预期的NDEF记录的长度。p>但是,我对字节16..20(01 03 a0 0c 34(感到困惑。这些是什么?

看来这些是锁定控制TLV的一部分,NFC类型2标记标准的一部分(第10-11页(。

字节被布置为这样:

  • 0x01-锁控制TLV块名称
  • 0x03-长度为3个字节
  • 0xa0-编码锁定区域所在标签中的位置,由两个nibbles组成:
    • 0b0000-更高的4位表示页数,而较低的4位是字节数
    • 的数量
  • 0b1100-锁定区域中使用的位数。
  • 0x0c-指示锁定区域位的大小
  • 0x34-提供页面中的字节数,每个动态锁定位的字节数都可以锁定。
  • 最新更新