從NFC卡分析看ACR122U讀寫原理 (轉載)
本文轉載介紹一個NFC卡製作的全部流程,並對製作過程中的讀寫原理進行探討。在逆向分析中,我們會接觸多種多樣的工具,在使用工具的同時,希望大家思考一下原理,便於更深入的進行了解和學習。
目錄:
0x1.工具及卡片介紹
0x2.卡片資訊讀取
0x3.卡片資料分析及修改
0x4.卡片資訊寫入
接下來步入正題,先從背景介紹開始。之前購得ACR122U之後閒置了一段時間,最近辦理了一張餐飲消費會員卡,於是忍不住拿來分析一下。
0x1.工具及卡片介紹
先說一下會員卡,該卡片是M1卡。所謂的M1晶片,是指菲利浦下屬子公司恩智浦出品的晶片縮寫,全稱為NXP Mifare1系列,常用的有S50及S70兩種型號,截止到2013年11月4日,已經有國產晶片與其相容,利用PVC封裝M1晶片、感應天線,然後壓制成型後而製作的卡即是智慧卡行業所說的M1卡。
// 餘額319.4
# 扇區10塊1
01 00 01 00 00 05 FD 20 05 04 00 00 6D B7 00 51
# 扇區11塊0及塊1
17 10 30 00 00 00 00 00 00 00 00 00 00 00 00 57
00 00 00 26 00 00 7C C4 FF FF 83 3B 00 00 00 22
// 餘額298.6
# 扇區10塊1
01 00 01 00 00 05 FD 20 05 04 00 00 6D B7 00 51
# 扇區11塊0及塊1
17 10 30 00 00 00 00 00 00 00 00 00 00 00 00 57
00 00 00 27 00 00 74 A4 FF FF 8B 5B 00 00 00 23
根據資料結果,我們可以看出,在消費後,只有11扇區塊1(塊2相同)發生了變化。
// 餘額298.6
# 扇區11塊1
00 00 00 27 00 00 74 A4 FF FF 8B 5B 00 00 00 23
# 27和23為計數,每消費一次增加1
# 00 00 74 A4 為餘額資料
# FF FF 8B 5B 為餘額校驗資料,為餘額取反
我們繼續看下扇區10塊1
// 餘額298.6
# 扇區10塊1
01 00 01 00 00 05 FD 20 05 04 00 00 6D B7 00 51
#卡片上印刷的卡號為28087,對應十六進位制為0x6DB7,恰好與扇區10塊1對應
至此資料基本分析完畢,我們來嘗試寫入看結果如何。
0x4.卡片資訊寫入
我們把餘額改為600,也就是60000分,十六進位制為0xEA60,取反為0x159F,修改如下:
// 餘額298.6修改為600
# 扇區11塊1,修改前
00 00 00 27 00 00 74 A4 FF FF 8B 5B 00 00 00 23
# 扇區11塊1,修改前
00 00 00 27 00 00 EA 60 FF FF 15 9F 00 00 00 23
修改後儲存dump檔案,使用MiFare Card Programming工具將其寫入到卡中
需要注意的是,每個扇區需要有本身對應的密碼才可以寫入。
相關文章
- 從NFC卡破解分析看ACR122U讀寫原理
- Android NFC的初次使用——公交卡資訊讀取Android
- 遊戲分析:從《雙點醫院》看關卡設計遊戲
- MySQL從庫卡主了--讀寫分離也不能亂讀MySql
- 華為nova7 pro有NFC嗎?華為nova7 pro有NFC功能,支援讀卡器模式模式
- Laravel讀寫分離原理Laravel
- 蒙特卡羅模型(轉載)模型
- Arduino+ESP32 之 SD卡讀寫UISD卡
- 解讀銀行卡支付背後的原理
- 從MongoDBReplicaSetHA看分散式系統讀寫一致性問題MongoDB分散式
- 按需載入原理分析
- 彼得原理(轉載)
- 從數字簽名的工作原理看電子商務安全(轉)
- nginx負載均衡原理分析到手動編寫簡易負載均衡器Nginx負載
- NEO從原始碼分析看NEOVM原始碼
- 彼得反轉原理(轉載)
- (轉載)鏈式檔案生成器原理分析(一)
- RC522 讀卡器和寫卡器 讀寫測試程式----基於cc2530開發板
- Nginx 負載均衡原理解讀Nginx負載
- 資料庫持久化中的讀寫效能原理分析---基於儲存引擎和索引原理資料庫持久化儲存引擎索引
- HashMap工作原理(轉載)HashMap
- AIDAS原理(轉載)AI
- Elasticsearch 資料寫入原理分析Elasticsearch
- 從阿里財報看大船轉舵阿里
- CIH病毒原理的應用——實體記憶體的讀寫 (轉)記憶體
- NFC以及NFC支付簡介
- 從原始碼看Vue的響應式原理原始碼Vue
- 從一條select語句看Oracle資料庫查詢工作原理 - 轉Oracle資料庫
- 從PC組裝原理看ERP軟體跨業態整合作業(轉)
- 硬碟保護卡的原理分析 (2千字)硬碟
- NFC
- SWOT分析 (轉載)
- SAP Spartacus 讀取 Cart 的原理分析
- NEO從原始碼分析看數字資產原始碼
- 從一個例子看Go的逃逸分析Go
- golang原始碼分析:sync.Pool 如何從讀寫加鎖到無鎖Golang原始碼
- 蒙特卡羅模擬技術 (轉載)
- 【C++】從設計原理來看string類C++