接下來我們要來認識規則比較複雜的「區段存取控制位元」。如果想偷懶,可以直接找線上工具來產生 (搜尋 MIFARE Classic 1K Access Bits Calculator
就能找到)。
每個資料區塊及區段尾端區塊的存取權限,都是透過 3 個存取控制位元 (bit) 來表示,存取控制位元會以一份原始資料與一份反相後的資料存在「區段尾端區塊」內。
存取控制位元可以用來控制 Key A 及 Key B 的記憶體存取權限,可以透過正確的金鑰及存取權限來修改。如果存取控制位元有誤,整個區段就會發生不可逆的拒絕存取 (俗稱變磚)。
取出代表該「資料區塊」的 3 個存取控制位元後,就可以透過查表來確認 Key A 及 Key B 能進行的記憶體操作:
需要特別注意的是,如果 Key B 被視為普通資料時,無法用來進行「資料區塊」及「區段尾端區塊」的記憶體操作。
取出代表「區段尾端區塊」的 3 個存取控制位元後,就可以透過查表來確認 Key A 及 Key B 能進行的記憶體操作:
需要特別注意的是,如果 Key B 被視為普通資料時,無法用來進行「資料區塊」及「區段尾端區塊」的記憶體操作。
FF078069
將 FF078069
先轉成二進位:
1111 1111
0000 0111
1000 0000
0110 1001
接下來就可以透過查表,來轉換每個區塊的存取權限如下: