前些天小区楼下单元门的门禁读卡器坏了,物业给换了个新的,然后当晚回家就发现我的小米手环6刷不开门禁了。

最早入智能手表坑是出于尝鲜买了个佳明的手表,后来摔坏之后为了便携性就换了个小米手环。当时是小米手环5,买回来之后看到NFC功能可以模拟门卡,就好生研究了一番。在淘宝买了个PN532,然后对着教程琢磨、尝试,最后成功把小区的门禁IC卡解密、并模拟到手环上。后来还升级小米手环6,一直用了几年,这次突然不能用了,就重新开始研究。

  1. 首先能确定的一点是物业没有通知住户更换门禁卡,所以旧IC卡一定是可以用的。那么问题就出在这个模拟上面。

  2. 第二点是当晚我回家问了父亲之后,他说他的小米手环8还能刷开门禁,并且我拿下楼去当场测试了一下,确实没问题。

而父亲的小米手环8里面的门禁卡也是我给他模拟的,同一份dump数据。那么结论就是模拟的数据源是没问题的,问题出在小米手环6本身上面。

插上PN532,加载门禁卡dump作为密钥,分别读出小米手环6和8的两份存储的dump数据对比,发现第8~15字节,也就是所谓0扇区中的这一部分是不一样的。同时后者的dump数据与从门禁卡中dump出来的是二进制一致的。进一步查了资料,发现从小米手环4开始就不支持完整模拟0扇区数据,8-15字节是出厂写死的。

那么小米手环8原来是支持完整模拟0扇区的了?于是又买了个新的小米手环8,下单、收货、写入、测试,完美刷开门禁。

至此,已经证实小米手环8NFC版可以当作一个CUID卡来模拟任何IC卡了。

当然,对于加密过的IC卡,前提还是得先找到密钥并解密,具体请参阅其他教程吧。

小米手环8NFC