解决MiFare Ultralight NFC标签的内容

时间:2019-06-26 17:58:49

标签: ndef tlv

我目前正在使用NFC / NDEF,遇到一个无法理解输入数据的问题。我对NDEF标准有一般的了解,并查看了MIFARE数据表,因此我能够挑选出一些东西,但是有些字节似乎不合时宜,令人困惑。

以下是通过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个字节,内部是2个字节,锁是2个字节,最后4个是OTP字节)。 )

从字节21开始,我可以看到一条TLV记录的开始,其中终结符TLV标志位于末尾(03 1b ... fe),指示长度为27的NDEF类型的记录。这与预期的NDEF的长度匹配记录。

但是,我对字节16..20(01 03 a0 0c 34)感到困惑。这些是什么?

1 个答案:

答案 0 :(得分:0)

这些似乎是锁定控制TLV的一部分,是NFC Type 2 Tag standard (pages 10-11)的一部分。

字节的布局如下:

  • 0x01-锁定控制TLV块名称
  • 0x03-长度为3个字节
  • 0xa0-对锁定区域所在的标签内的位置进行编码,由两个半字节组成:
    • 0b0000-高4位代表页面数,而低4位代表字节数
    • 0b1100-锁定区域中使用的位数。
  • 0x0c-指示锁定区域的大小
  • 0x34-提供页面中的字节数以及每个动态锁定位能够锁定的字节数。