簡體   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