完美解决小米手机无法模拟门禁卡的问题
本人上一篇文章“解决小米手机无法模拟门禁卡问题”出来后没想到大家反应如此强烈,并有很多读者提出问题及疑问,本着对文章负责,对读者负责,对技术严谨的态度,本人又购买了IC卡专用读卡器PCR532,经过几天的学习及试验,终于完美解决小米手机无法模拟加密门禁卡的问题,本文同时也对上一篇文章中不足或错漏的地方进行完善和补充。
PCR532读卡器
532读卡器及3种不同外观CUID卡
一、本文所使用软件及工具:
MIFARE Classic Tool「链接」
PCR532(该软件购买读卡器时由卖家提供)(完美模式)
小米带NFC功能手机
CUID空白卡
二、门禁卡常见种类及相关知识:(如嫌前面部分复杂难懂可直接拉到最后完美部分)
常见有两种卡:ID卡和IC卡,手机能识别IC卡,无法识别ID卡,ID卡仅有卡号没有数据,IC卡(M1卡)有16个扇区(0至15扇区),每个扇区从0块至3块共4块,可储存可记录1K数据,本文主要讨论IC卡。
左边为ID卡,右边为IC卡
常见IC卡外观
IC卡内部结构
IC卡原理图
IC卡类型(购买时一般选CUID卡)
M1卡各块数据含义
M1卡数据说明
三、如何完美模拟IC卡(先介绍无读卡器省钱方案,再介绍购买读卡器完美方案)
先说结论,再介绍无读卡器及有读卡器两种解决方案。
小米手机模拟门禁卡却无法使用的最终原因:
小米自带模拟门禁卡功能(软件)无法读取加密扇区数据。但可通过第三方软件MIFARE Classic Tool「链接」把母卡(要模拟的门禁卡)数据完整读取出来,再写到空白CUID卡上,空白CUID卡完成复制后即可正常使用。
经测试,小米手机(内部模拟卡)0扇区0块前8位(厂商UID)能够模拟,0扇区0块后8位(厂商数据)无法模拟。但0扇区0块后8位并不影响门禁卡的正常使用。
0扇区0块数据:第1至4个字节为UID码,第5个字节为BCC校验码,第6个字节为卡片
SAK值,第7至8字节为厂商信息。大部分门禁系统会优先验证0扇区0块数据前8位的正确性,校验通过再访问其他扇区。
小米手机无法模拟加密数据(如下图内容)
左边为小米手机自带功能模拟门禁卡母卡后读取出来得数据,右边为读卡器直接读门禁卡母卡数据与模拟数据对比
上图中,左边为小米手机自带功能模拟门禁卡母卡成功后,再用读卡器从小米手机中读取出来的数据,右边为读卡器直接读门禁卡母卡数据与模拟数据对比,可见扇区8因加密原因小米手机无法直接模拟该扇区。
无读卡器解决方法(MIFARE Classic Tool「链接」))(CUDI卡贴模式):
需购买空白CUID卡(价格:3元左右)
卡贴模式(不想买读卡器时可以采用此模式)
1、下载安装并打开MIFARE Classic Tool「链接」软件:
MIFARE Classic Tool写M1卡软件
2、读取母卡(将要模拟的门禁卡放到手机背后NFC读取区域):打开“读标签”后两个密钥全勾选(一定要全勾选,否则加密区域无法读出)
“读标签”中
3、读出母卡数据后,将母卡移开,将空白CUID卡放到手机背后NFC读取区域,准备将读出数据写到空白CUID卡中:
解密出门禁卡(母卡)数据后点右上角“...”,再点“写转储”
读出母卡数据准备写空白CUID卡
点“写转储”(勾选“显示选项”再点“高级:开启块0写入)
点“全选”再点OK
密钥全选,再点“开始映射并写转储”
写入中
4、成功将母卡(要模拟的门禁卡)数据写到CUID卡中(CUID卡0扇区0块整块区域都能写入,因此用CUID卡复制出来得门禁卡与母卡数据完全一致)
写入完成
5、将写好数据的CUID卡贴到手机背面,同时需关闭手机自身NFC功能,否则由于手机背后卡贴原因手机经常引起NFC功能误启动。
完美模式:读卡器写入写米手机
需购买IC卡读卡器,我使用的是PCR532读卡器(价格:30多块到100多块)
1、打开小米手机钱包功能,点“门卡钥匙”进入“门卡钥匙”功能
小米钱包功能
2、点“实体门卡”“添加”功能,手机开始模拟门禁卡(随便将一张空白CUID卡放到手机背后NFC读取区域,模拟出一张空白卡)
3、打开PCR532软件(商家提供),把母卡放到读卡器上,点“开始解卡”,解密并读出母卡数据(读出母卡数据后点确定,保留软件窗口不要进行任何操作直到手机模拟好空白卡放到读卡器上)
PCR532读卡器从母卡上读出数据
读出母卡数据,点确定
4、将母卡从读卡器上移开,并将手机背后NFC位置放到PCR532读卡器读写区域
将手机背后NFC位置放到PCR532读卡器读写区域
5、点PCR532软件“一键写卡”功能,母卡数据成功写进小米手机。(提示“有1个扇区没写成功,可能是厂商扇区”,开头已有说明,经测试不影响门禁卡正常使用)
母卡数据成功写进小米手机
至此,小米手机已经完美写进门禁卡数据,享受无卡刷小区门禁,再也不用担心忘记带门禁卡。