主要的过程参考B站视频 av64196965
采用 PN532 芯片方案相比 PM3便宜很多,一体版(已集成usb接口)只要40多。

QQ截图20190928033832.jpg

以下是文字版流水账

准备

需要

  • 加密小区门禁卡 以下简称 门卡 ;
  • CUID空白卡 1张,以下简称 白卡 ;
  • 小米手环4 NFC版 (或其他类似功能可模拟门卡的NFC设备,例如手机),简称 手环 ;
  • PN532读写器 简称读卡器,及对应驱动;
  • 软件 M1T(MifareOneTool) , 我用的版本是 1.6.6 ;

读门卡、解密

安装驱动,接上读卡器, 运行 M1T。
点击【检测链接】,如果读卡器驱动正确安装的话下方控制台应显示已找到了设备,如下图

QQ图片20190928033310.jpg

把门卡放读卡器上,点【扫描卡片】

注意!扫描结果其中一行 SAK 如果值为 08,可以继续下述步骤,如果值是20或28 有大概率不能解密。

然后,点【一键解原卡】等待过程完成后,提示保存 dump 文件,这个是带加密的门卡备份。

点M1T顶部切换到高级操作模式,点击【Hex编辑器】

advance.png

点菜单栏【文件】-【打开】 读取刚才保存的dump文件, 然后点击列表的 扇区0 复制 “第0块” 值的前8位,如下图

QQ图片20190928033404.png

hex编辑工具的菜单 文件 -> 新建,
然后点菜单的 工具 -> 修改UID ,黏贴上一步复制的8位 UID

QQ截图20190928035206.png

最后点菜单 文件 -> 另存为。 提示保存为 mfd 文件。

解读上述操作: 把0扇区0块前8位(UID)复制出来创建一个新卡镜像文件(mfd), 这个卡片不带任何加密扇区 可以被小米手环模拟,且再后续步骤中因为ID相同,可以欺骗读卡器和NFC芯片是同一张卡,为允许写入还原加密信息提供可能。

写白卡

把白卡放在读卡器上,点M1T 高级模式的右上角 【CUID写】,选择上一步骤保存的 mfd文件。

QQ图片20190928033337.png

把白卡放到读卡器上,弹出的提示点【取消】,必须点取消,否则白卡将被写入秘钥导致存在加密无法被手环模拟,且不能被刷写(除非做清M1操作)

注意! 留意写入的结果,如果不是提示 64/64扇区写入成功,如果不是则再写入一次。不知道是不是M1T软件的问题,每次都要操作两次才成功

未成功的写入

QQ图片20190928033358.png

成功的写入

QQ图片20190928033344.png

手环模拟白卡

从读卡器上移除白卡,把手环放白卡上,在小米运动APP上进行门卡复制操作。

手环写入加密区

把手环放置在读卡器上,点【扫描卡片】,检查扫描结果 UID 应与上文复制的8位UID一致。

QQ图片20190928033408.png

(上下文截图并不对应,请忽略)

切换到 高级操作模式,点 【CUID写】,选择上文解密保存的 dump文件。此次选择使用Key A点【是】。
检查结果 是否成功写 64/64 或 63/64 (有可能厂家信息扇区不能覆写,一般不影响使用)。

检查

手环继续放在读卡器上,点M1T主界面的【检测加密】,如果扫描到的结果中存在已被加密的扇区,说明模拟加密卡已成功。

进一步检查:
用门卡的dump读取出key,用已知key方式读手环(因为直接破解手环是不成功的),将手环dump出一个文件来,在高级工具用对比工具对比门卡和手环两个dump文件。如果完全一致或只有0扇区的后8位(厂家码)1处差异,说明复制成功。

注意事项回顾

  1. 驱动对应不同的板有不同的版本,需要注意
  2. 留意门卡的SAX值 08 才具备解密可能,其他值可能要使用其他工具
  3. dump是门卡原始加密备份,mfd是只复制了nfc UID 的非加密卡备份
  4. 写入白卡时使用mfd文件,且弹窗应点【取消】
  5. 留意写入白卡成功块数如果不是 64/64. 需要重复写入步骤直至成功
  6. 写入手环时使用dump文件,弹窗应点【确定】
  7. 如果手环读卡UID与复制的不一致,检查是否当前激活的不是准备复制的门卡(如果手环内有多张门卡数据,需要手动切换)

one more thing

带nfc功能的手机,如果有相应的模拟门卡app 也可以用上述方法模拟加密卡,例如小米mix 2s 的小米钱包内有门卡模拟功能。

QQ截图20190928033916.png

标签: 小米手环4, nfc, 加密门禁, 解谜, 复制门卡

仅有一条评论

  1. 测试猿 测试猿

    全加密卡的模拟,暂时还没摸索到什么好的方法,暴力解key很慢,等了2个多小时也没试完

添加新评论