線上工具
Mifare 卡片編輯器
把讀出來的 dump 檔拖進來直接改十六進位。一列就是一個 block,Key 與存取條件都幫你標好。
改 sector trailer 前先看懂存取條件。那三個 byte 決定這個 sector 之後還能不能讀寫, 填錯值會讓整個 sector 永久鎖死,任何金鑰都救不回來。 本工具預設鎖住存取條件不讓你改,要動請先勾選解鎖,右側面板會即時翻譯改完的結果。
檔案完全在你的瀏覽器裡處理,不會上傳到任何伺服器,關掉分頁就沒了。
載入 dump
把 .mfd/.dump/.bin/.mct 檔拖進來
block 0:
ATQA 在 dump 裡是低位在前,0044 會寫成 44 00。 4-byte UID 會自動補上 BCC,7-byte 沒有 BCC。
blk 是 block 編號,ofs 是這一列第一個 byte 的位移(十六進位)。 一個 block 有 16 個 byte,所以 block 1 的位移是 0010 而不是 0001。
點一格之後可以直接打鍵盤輸入十六進位(方向鍵移動、Ctrl+Z 復原)。 手機請用右側面板的輸入框編輯。
目前位置
尚未選取
整體檢查
匯出
dump 檔裡面到底裝了什麼
一張 Mifare Classic 1K 是 1024 個 byte,分成 16 個 sector,每個 sector 有 4 個 block,每個 block 16 個 byte。這頁一列剛好排 16 個 byte,所以一列就是一個 block, 不會出現「資料被切在兩列中間」這種通用 hex editor 常見的困擾。
每個 sector 的最後一個 block 是 sector trailer,它不是資料,而是這個 sector 的門鎖: 前 6 個 byte 是 Key A、中間 4 個是存取條件、後 6 個是 Key B。 整張卡的第一個 block則是廠商資料, 存著 UID、BCC、SAK 與 ATQA,一般卡片這裡是唯讀的,只有 CUID/UID 卡寫得進去。
最容易把卡改壞的地方
是存取條件那 3 個 byte。它們用一種「同一份資料存正的也存反的」的編碼,卡片會自己檢查兩邊對不對得上, 對不上就拒絕整個 sector。更麻煩的是,即使值合法,某些組合的意思是「這個 sector 從此不能再改設定」, 寫進去就回不來了。所以這頁預設不讓你動那 3 個 byte,要改必須先勾選解鎖, 而且右側會即時把改完的結果翻成人話(誰能讀、誰能寫、還能不能改回來)。
第二容易出事的是 block 0 的 BCC。它是 UID 前 4 個 byte 的 XOR 校驗碼,改了 UID 卻沒同步改 BCC, 很多讀卡機會直接不認這張卡。這頁偵測到不符會標紅並提供一鍵修正,跟 NTAG A2 指令產生器 在 NTAG 上做的事情一樣。
支援的檔案格式
讀取吃四種:二進位 dump(.mfd/.dump/.bin)、 手機 MCT App 匯出的 .mct 文字檔、Proxmark 與 Chameleon 的 .eml, 以及隨便一串貼上來的十六進位文字。完整 dump 可匯出成這幾種格式,改完直接丟回原本的工具寫卡。
卡片型別靠檔案長度判斷:320/1024/2048/4096 bytes 對應 Mifare Classic Mini/1K/2K/4K, 1152 bytes 是多出 sector 16、17 的 1K(部分魔術卡有這兩個額外 sector), 180/540/924 bytes 對應 NTAG213/215/216。 MCT 匯出檔裡沒讀到的 sector 會是一整行的 -, 這頁會保留成灰色的未知資料,只允許匯出回 MCT 格式,因為其他格式會把不知道的內容當成 00,做出一張錯的卡。
這頁不做的事
不破解、不還原金鑰,也不寫卡。它只負責「已經讀出來的資料」這一段。 卡片讀不出來、金鑰不知道的情況請看 門禁卡複製教學, 或直接找我們代客解卡。 改完的檔案要寫回卡片,手機用 MCT、電腦用 PN532 或 Proxmark 都可以, 但請記得原卡的 block 0 通常寫不進去,要換 UID 得用 CUID 或 UID 卡。
所有解析與編輯都在你的瀏覽器本地完成,dump 檔不會離開你的電腦。相關工具: 卡號格式轉換器、 NTAG 網址寫入工具。
改好了,要有卡寫得進去
原卡的 block 0 大多是唯讀的。要換 UID 請用 CUID 卡,台灣現貨。