入住万科小区后,每次出入都要经过两次门禁,导致虽然装了智能锁,但还是要带门禁卡,所以一直想着怎样把门禁复制到手机 NFC 上。一加7 pro 在 11 月已推送了门禁卡功能,但只支持未加密的门禁卡,万科的一卡通都是加密过的,所以直接复制不了。

加密卡也分半加密或全加密,属于哪种类型,可以手机下载 MifareClassicTool (MCT) 查看,部分扇位可以看到内容的就是半加密,所有扇位内容都看不到的就是全加密卡,全加密卡的话,建议直接放弃,破解密钥需要太多时间了。

经过在酷安浏览 NFC 相关内容,发现是有方法可以实现复制的,但需要一个 PN532 的 NFC 解密设备和 CUID 空白卡,复制流程如下:

  1. 使用 PN532 解密半加密的原卡内容
  2. 把门禁卡的 0 扇区的 0 块的 UID 和厂商号写入 CUID 空白卡(这样空白卡就变成未加密卡了)
  3. 使用手机 NFC 模拟 CUID 空白卡
  4. 使用 PN532 或另一带 NFC 功能的手机把余下加密的所有扇区信息写下手机模拟的门禁卡

一、使用 PN532 解密半加密的原卡内容

pn532 如何连接电脑就不详述了,要解密原门禁卡密钥,需要下载windows 软件MifareOneTool,把门卡放到 PN532 上,然后选择高级模式 -> HardNested,软件就会开始执行爆力破解,在我 i6700K 电脑上,平均破解一个密钥需要 6 小时。。。一般进度到 30%~50% 就能破解到,只要还是看 RP😂

ls1EwQ.png

扇区号填写需要破解密钥的扇区,1 个扇区有 A/B 两个密钥,所以一个扇区是需要破解两次的。

破解 10 扇区的 A 密钥:

ls3cbF.png

破解 10 扇区的 B 密钥:

ls8KqU.png

破解原理可以看下面文章:一卡通(M1卡)破解过程记录——获取扇区密钥

二、0 扇区 0 块写入 CUID 空白卡

写入 CUID 使用手机的 MifareClassicTool 。首先需要保存原门禁卡的已解密的 dump 文件。

1.MCT 中选择编辑/增加密钥文件,在std.keys中增加刚才破解出来的密钥,一行一个

lsGXct.png lsJ9Ag.png

2.手机靠近原门禁卡,使用读标签功能读取所有扇区的内容出来,并保存为转储文件。

3.选择编辑/分析转储文件打开刚才保存的转储文件,复制 0 扇区 0 块的内容。

lsYFaD.png

4.手机靠近 CUID 空白卡,选择写标签功能,使用写块把刚刚复制的内容写入0扇区0块,如下图所示

lstekF.png

这样就得到了一个可以被手机 NFC 功能复制的未加密门禁卡

三、使用手机 NFC 模拟 CUID 空白卡

正常都能模拟成功,但这里因为手机厂商的限制,有个坑,后面会说明

四、把原卡加密内容写入手机模拟门禁

假如手上有另一台带 NFC 功能的手机,可以在另一手机也安装 MCT 直接写,手机选择刚刚模拟的门禁为默认卡就可以

MCT 中选择写标签->写转储(克隆),选择之前保存的转储文件,勾上所有扇区并确认,这样就能把原卡所有内容完整复制到手机模拟的门禁了😆

lsUQZ6.png lsanfg.png

假如只有一台手机,可以在 windows 上通过 PN532 使用MifareOneTool写。不过 MCT 的转储文件在MifareOneTool中不能识别,需要先转为 MFD 文件,还好 MCT 的 github 库中提供了转换工具。

访问https://github.com/ikarus23/MifareClassicTool/tree/master/tools/dump-file-converter下载mct2eml.pyeml2mfd.py工具,把 MCT 的转储文件(保存在手机/MifareClassicTool/dump-files/目录下)转换为 MFD 格式文件。

python mct2eml.py path_to_mct_dump eml_dump.eml
python eml2mfd.py path_to_eml_dump mfd_dump.mfd

手机选择模拟的门禁卡,靠近 PN532,在 MCT 中选择高级操作模式->写M1,选中刚刚转换的 mfd_dump.mfd 文件,就能开始写入了

l6RhW9.png

五、拿模拟好的手机下楼刷卡

啲~一声,假如门开了,那么恭喜你,终于模拟成功了,假如门禁完全没反应,门开不了,那就是遇到上面第三点说的坑了——小区门禁校验了厂商号,而手机 NFC 限制不能覆写厂商号。

现在主流厂商的手机模拟门禁功能都是限制了写厂商号,假如你小区的门禁是有校验厂商号的话,建议你放弃吧,这个没解了。。。曲线救国的方法就是改使用手机 NFC 卡贴或使用手机空白卡功能让物业登记给下权限

相关参考资料: