如何在不覆盖任何内容的情况下确定 nfc 标签是否被锁定?

How to find out if nfc tag is locked without overwriting anything on it already?

我知道我可以尝试 read/write 覆盖已有的内容,但这会抹掉已有的内容。是否有任何特定的 apdu 或类似的东西可以显示它?

根据您的标签列表,您可能会分别处理每种类型的标签。

例如,即使在 NTAG 21x 系列卡上,它们只是同一张卡的不同大小,您也可以通过以下方法锁定它。

  1. 静态锁定字节,您将读取页面 02h 的字节 2 和 3,这适用于所有大小。

  2. 动态锁定字节,根据卡的大小,您需要读取 28h82hE2h

  3. 阅读 29h83hE3hAUTH0 配置页面,查看它们是否已被密码锁定,再次取决于卡片大小。

  4. 读取 3h 页第 3 字节的 Capability Container 作为 Ndef data standard for a Type 2 card 因为这表明写入是否被“锁定”,尽管我有 Type 2 兼容卡(不是完全兼容)在硬件级别忽略它并允许写入,即使写访问应该被它阻止。

那么所有的 Mifare Classic 系列卡将有一套不同的锁定机制,再次存储在整个标签中。

其中一些方法可以部分“锁定”标签,因为它们只能限制标签的一部分,而不是整个标签。

这是可能的,但工作量很大,要检查所有配置位置,可以“锁定”标签。