文章目录
背景
每次上电梯都要刷电梯卡,很不方便,想将电梯卡复制到手机中。
工具
- 有NFC功能的手机。我用的是华为Mate 30 Pro。
- 蜜獾解码器。如果电梯卡不是加密的就简单了,直接使用华为或者小米钱包复制卡片就行。我的电梯卡是加密的,还是需要一个硬件解码器的。这里我用的是蜜獾。
将卡片复制到手机
将卡片复制到手机上有两种方法,一种是使用手机"钱包"的"模拟实体门禁卡",另一种是使用"创建空白卡"功能。两种方法的原理其实是一样的,我将分别予以介绍。
方法一:"创建空白卡"方式
第一步:使用蜜罐设备对原电梯卡进行读取和解码。得到数据A。详细数据如下图,我们可以看到数据分为16个扇区。我将其分为三部分去理解:
- 第0扇区的卡号。我这张电梯卡的卡号是BB 48 0B XXXXX。
- 第0扇区设备厂商码。厂商码是写死的,我原来的电梯卡是62 63 64 65 XXXX,华为这款手机是D2 00 00 01 XXXXX。我暂时还没找到修改手机的厂商码的方法。
- 加密和未加密的数据。
第二步:将数据A复制到空白UID卡中。找一张空白的UID卡,将原始门禁卡数据A写入UID卡中。写好后我们再读取该UID卡片,可以发现这张UID卡片的数据和原门禁卡卡片数据A是一模一样的(连厂商码都是一样的。(UID卡就是一张白纸,你写啥,他就是啥)。
第三步:格式化UID卡。格式化以后,UID卡就只剩下刚刚说的第一部分卡号和第二部分出场码部分的数据。第三部分加密和未加密的数据就被格式化了。
第四步:在手机上点击"创建空白卡",手机提示此时需要读取一张卡片。这里我们要去读取格式化后的UID卡片。**千万别读取原电梯卡。**读取完成后,手机上提示"卡片创建成功,需要去物业写数据"。
第五步:将手机放在读卡器上,将原电梯卡数据A写入手机,注意此时别写空UID卡的数据,要写数据A。随后,原电梯卡数据就已经被复制到手机。用读卡器读取一下手机,得到数据C,如果数据A和C只有第0扇区的厂商码是不一样的,其他均一样,这张电梯卡就被成功的复制到了手机上。
方法二:"模拟实体门禁卡"方式
第一、二、三步同上述方法一、二、三步。
第四步:在手机上点击"模拟试题门禁卡",读取那张格式化后的UID卡。
第五步:同上述方法第五步。
方法三:直接使用设备上的"将门禁卡写入手机/手环"
通过USB把设备连上电脑后,打开厂家自带的软件。软件里面是有"将门禁卡写入手机/手环"功能的。该功能的具体方法其实和方法二是一样的。其实这种方法是最简单的。但是由于我用USB连接设备写数据到手机的时候,有不稳定的情况,所以我选择用蓝牙模式连接读卡器,然后用方法二去复制卡。
常见问题
电梯校验厂商码
我们将电梯卡数据A写到手机中以后,如果数据A和C只有第0扇区的厂商码是不一样的,但是无法使用手机刷开电梯,可能就是因为电梯校验了厂商码。
可以通过如下方法去校验是否是该问题。将手机中的数据写回到空UID卡中,此时手机的厂商码也被写到UID卡中(UID卡是白纸,你写啥他就是啥,厂商码也会被写入)。此UID卡片的数据和手机数据是一模一样的。
- 如果此UID卡也刷不开电梯,大概率就是电梯校验厂商码了。一般遇到这种场景只能通过使用CUID卡贴了,CUID卡贴也是可以复制原卡片的厂商码的。听说校验厂商码的电梯不多,仅占10%左右。
- 如果此UID卡能刷开电梯,说明电梯不校验厂商码。使用手机无法刷开电梯可能是由于电梯的读卡器读头是"低功耗读头",或者是读卡器不识别手机等。我查帖子有人说复制了门禁卡以后手机能打开电梯,但是刷不开小区门禁。我理解就是上述原因。一般遇到这种场景也就只能通过使用CUID卡贴了。让电梯去读你的CUID卡片,而不是手机中的NFC虚拟卡。如果大佬有别的方法解决这个问题,请赐教。
滚动码
如果遇到有滚动码的电梯,通过上述方法,也是无法成功复制卡片到手机的。滚动码的意思就是你刷一下电梯卡,电梯会和实体卡进行一次交互,并会修改卡片的加密数据。如果遇到有滚动码的电梯,只能去按照电梯和电梯卡之间的加密算法,去生成一张新的加密卡。 我没遇到过滚动码的电梯,也不知道按照加密算法新生成的卡片能否会被写到手机中。也不知道将该卡片写到手机中后,刷手机的时候,电梯是否可以修改手机中虚拟卡的加密数据。请大佬赐教。
可以使用如下方法去判断电梯有没有使用滚动码。读取实体卡的数据,刷一下电梯,再读取一次实体卡的数据,对比两次数据是否一样。一样,则没使用滚动码,否则就使用了。
写数据到华为Mate 30 Pro手机时容易报错
卖家和我说我这款手机很特别,手机的NFC读卡器的位置和别的手机不一样,需要如下图的方式去放置手机,否则写入数据的时候,容易失败。我自己创建虚拟卡的时候也遇到这个问题了,写IC卡经常失败。
关于该设备的蓝牙和USB两种模式
我发现用这个设备去写数据到手机的时候,使用蓝牙的方式比使用USB方式的成功率高很多。我也感觉很奇怪,一般USB都是比蓝牙稳定的。但是我使用这个设备的过程中,确实蓝牙更加稳定。
还有就是如果用的是前置USB去连接设备,写卡的时候,我手机卡片能读取到读卡器,但是80%概率写卡会失败。如果换到后置USB的时候,就会好很多。可能是使用前置USB连接设备时,读卡器电压不足导致。这也证明了读卡器电压不足可能导致读写手机中的卡片数据失败,这可能也是用手机刷不开"低功耗读头"的电梯的原因之一。
写数据到手环时,卡号读取错误
我的手环是华为手环6。我在用上述一或者二方法,将门禁卡设备写到手环的时候,始终写不成功,我发现连卡号都写不对。我用手环去复制那张被格式化以后的UID卡,然后读取手环的数据,发现手环中的虚拟卡的卡号和空UID卡的卡号都不一样。原始卡是XXXXX 08 XXXXX ,写到手环中就变XXXXX 28 XXXXX了。请大佬赐教。
我在往手环写数据以后,发现手机钱包里的卡也被同步成手环中的那张卡了,导致手机也不能刷电梯了。请大佬赐教。