2

我有几个 NXP MIFARE Ultralight 标签(类型 2),其中包含第一条记录中的一些数据。我正在使用 ACS 1252U 读取标签,我尝试手动迭代一些数据以了解标签上的内容,但我似乎无法弄清楚如何确定记录的开始位置以及它结束的地方。

以下是有关 NFC 标签的一些详细信息以及我正在尝试读取的记录:

这是我的一个标签中的一些数据,从第 04 页开始:

03 ff 01 5a
c4 0f 00 00
01 45 62 63
61 72 64 2e
6e 65 74 3a
62 63 61 72
64 39 39 37
30 31 1e 34

现在,如果我将所有这些转换为 ASCII,我会得到以下信息:

ÿZÄEbcard.net:bcard997014

我所知道的是,我所追求的实际数据(或有效载荷)从 开始99701,但是我到底应该怎么知道呢?数据中肯定有一些东西可以告诉我记录的有效负载从哪里开始以及在哪里停止?

4

1 回答 1

3

数据遵循 Type 2 Tag 规范就好了。类型 2 标记的数据页从页/块 4 开始。数据嵌入到 TLV 结构中。

在您的情况下,第 4 页的第一个字节是 NDEF 消息 TLV (0x03) 的标记。下一个字节表示长度字段以 3 字节格式编码。因此,长度为 0x015A(= 346 字节)。因此,您必须阅读接下来的 87 页(= ceil(346/4),因为数据从页面边界开始)才能检索完整的 NDEF 消息。

NDEF 消息本身由 1 条 NDEF 记录组成(头字节 0xC4 表示该记录是消息的第一个(MB=1)和最后一个(ME=1)记录)。该记录是 NFC 论坛外部类型(标头字节中的 TNF=4)。类型名称的长度为 0x0F(= 15 个字节)。有效载荷的长度为 0x0145(= 325 字节)。因此,类型名称是“bcard.net:bcard”,有效负载是 '39 39 37 30 31 1E 34 ...'(ITN 似乎没有发布关于其 bcard 类型结构的规范)。

请参阅如何解释 Mifare Classic 1K上的 NDEF 内容,了解如何解码这些 TLV 结构和 NDEF 消息。

于 2019-02-19T08:16:46.557 回答