两年前在某宝上买了一个 PN532 模块,然后踩了一堆坑复制了本科的校园卡到小米手环 4 NFC上,最近要读研了要换卡,又把坑踩了一遍,遂简记一下避免再次踩坑
(虽然我大概后面再也用不到了(雾
一句话概括
代理卡片不要写完整的扇区 0,要把加密删了,后面扇区 0 的加密是可以改回来的
ZJU 校园卡的特性
0 - 5 扇区会被加密,即第一个扇区也会被加密,这一特性导致网上的方案不可行
小米手环复制门卡的特性
要求门卡非加密,任何一个扇区加密都不行
只能有第一个扇区有内容,即扇区 0
仅复制扇区 0 中的卡号,且强制将厂家信息写为小米自己的(至少手环 4 是这样的)
但是,第一个扇区的其他内容(含加密信息),以及其他扇区的信息都可以在复制完门卡后再次外置写入,利用这一点可以将复制出来的非加密卡转为加密卡
解决方案
软件
xcicode/MifareOneTool: A GUI Mifare Classic tool on Windows
虽然这玩意 19 年就停工了但也不是不能用
另外 Linux 上用 mfcuk
去操作也是可以的
步骤
使用
MifareOneTool
破解原始的校园卡既然小米手环只能复制第一个扇区的卡号部分,那就使用 CUID 卡创建一个非加密的仅包含卡号信息的代理卡(直接按照网上的方案创建只包含扇区 0 的卡是不行的,一定要把扇区 0 的加密手工删掉,否则无法复制),然后让小米手环去复制这张卡
使用
MifareOneTool
对着手环上新复制的这张卡再次写入完整的数据(即扇区 0 - 15,因为扇区 0 需要靠这个步骤转换回加密的状态),此时选择写普通卡 / 写 CUID 卡区别不大,毕竟小米手环上的卡是不能写卡号和厂商信息的大功告成,可以使用
MCT
之类的工具检查一下卡片复制是否成功