繁体   English   中英

如何永久锁定MIFARE Ultralight C标签中的特定数据页?

[英]How do I permanently lock specific data pages in a MIFARE Ultralight C tag?

我已经成功地在数据页30到38上写了一些数据。

之后我想锁定那些页面以防止进一步写入。 写锁定应该是永久性的,因此即使有人知道验证密钥,它们也不应该写入这些页面。

据我所知,数据表,我必须在OTP页面上写一些位。 但我不完全理解我必须发送什么命令才能锁定第30至38页。

有人可以帮我识别需要发送到卡的命令吗? 我的想法是我必须在第40页写F0。但是,这也可能使第28,29和39页被锁定,因此无法使用。

如何永久锁定30到38页?

为了设置包含第30页到第38页的锁定位,您需要设置位于第40页的字节0的第5,6和7位的锁位。您可以使用WRITE命令执行此操作。 对于锁定位(或任何OTP页面),此命令将仅编程在命令的数据参数中设置为“1”的那些位(实质上导致逻辑OR)。 请注意,WRITE命令总是需要一整页(即4个字节)作为其数据参数:

byte[] result = nfcA.transceive(new byte[] {
    (byte)0xA2,  /* CMD = WRITE */
    (byte)0x28,  /* PAGE = 40   */
    (byte)0xE0, (byte)0x00, (byte)0x00, (byte)0x00  /* DATA = lock pages 28..39 */
});

但是,嘿,我不想锁定第28,29和39页! 我怎么只能锁定第30页到38?

不幸的是,你不能! MIFARE Ultralight C对第16页至第39页的锁定机制以4页为单位进行组织。 因此,您只能锁定以下4页的组:

  • 第16..19页
  • 第20..23页
  • 第24..27页
  • 第28..31页
  • 第32..35页
  • 第36..39页

块锁定位有什么作用?

块锁定位为锁定页面内的位设置写保护。 因此,例如,如果第28到39页的块锁定位设置为“1”,则意味着您无法更改这些页面的三个锁定位的状态。 因此,如果您设置第28页至第31页的锁定位但是未设置第32至35页和第36至39页的锁定位,然后设置块锁定位,则无法再激活第32页的写保护到39岁。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM