從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讀寫原理
- MySQL從庫卡主了--讀寫分離也不能亂讀MySql
- 遊戲分析:從《雙點醫院》看關卡設計遊戲
- 華為nova7 pro有NFC嗎?華為nova7 pro有NFC功能,支援讀卡器模式模式
- discuz 配置讀寫分離(主寫從讀)
- Laravel讀寫分離原理Laravel
- 按需載入原理分析
- nginx負載均衡原理分析到手動編寫簡易負載均衡器Nginx負載
- NEO從原始碼分析看NEOVM原始碼
- 玩轉Koa -- 核心原理分析
- Arduino+ESP32 之 SD卡讀寫UISD卡
- 從crash看kotlin-android-extensions工作原理KotlinAndroid
- Elasticsearch 資料寫入原理分析Elasticsearch
- 解讀銀行卡支付背後的原理
- 從阿里財報看大船轉舵阿里
- 從原始碼看Vue的響應式原理原始碼Vue
- 從SpringBoot原始碼看資源對映原理Spring Boot原始碼
- 【C++】從設計原理來看string類C++
- vivo X27手機支援NFC刷公交卡嗎?vivo X27手機有NFC功能嗎?
- golang原始碼分析:sync.Pool 如何從讀寫加鎖到無鎖Golang原始碼
- SAP Spartacus 讀取 Cart 的原理分析
- NFC
- 從一個例子看Go的逃逸分析Go
- Java 讀寫鎖 ReentrantReadWriteLock 原始碼分析Java原始碼
- 原始碼分析:ReentrantReadWriteLock之讀寫鎖原始碼
- 從SpringMvc原始碼分析其工作原理SpringMVC原始碼
- 從原始碼角度分析 MyBatis 工作原理原始碼MyBatis
- 從原始碼分析 GMP 排程原理原始碼
- 從面試題看 JS 事件迴圈與 macro micro 任務佇列(轉載)面試題JS事件Mac佇列
- 從原始碼解讀Category實現原理原始碼Go
- Spring Cloud Feign設計原理(轉載)SpringCloud
- 從思維轉變看數字化轉型 IT 經營
- vivo X27 Pro手機有NFC功能嗎?vivo X27 Pro手機支援NFC刷公交卡嗎?
- NFC 標籤:自動跳轉到指定應用
- Excel讀寫合集:Excel讀寫小白從不知所措到輕鬆上手Excel
- 讀入寫出,轉二進位制
- MYSQL 主從 + ATLAS 讀寫分離 搭建MySql
- 配置\清除 MySQL 主從 讀寫分離MySql