用 PN532 破解并模拟门卡

折腾

前言

高考完了!终于有时间可以放心水博文了~

本篇的起因是对于小区门卡完美模拟的追求。本来在「小米钱包」的空白卡功能上线之后,我觉得直接去找物管就完事儿了,也免得我买设备回来搞我这张半加密卡的麻烦。

然后物管是这样回答的:

我:我想麻烦你们帮我写下门卡,可以吗?

物:?

我:就是我这个是空白卡,你把数据写进来我就可以用手机开门了。

物:啊……?这个……好像不行,他们那边会烧设备的。

我:???那行吧。

所以我就买了 PN532,目前相对来说很便宜的一个卡片读写硬件,来尝试自己写入门卡到手机。

准备工作

  1. PN532 本体 x1,一般卖家都提供焊接服务,想自己 DIY 的可不选。
  2. 把它连接到电脑的任何辅助工具 x1,包括但不限于 USB-TTL 或线等
  3. 驱动程序 x1
  4. 可以用来读写卡、破解密钥的软件 x1
  5. 电脑 x1
  6. 支持 NFC 以及门卡模拟的手机 x1
  7. 另外一部带 Root 权限且支持 NFC 的手机 / 空白 (C/UF)UID 卡 x1

费用:PN532 ¥35 左右;白卡视类别不同价格价格略有差异,不会高于¥2/张。

PN532 配置其实很简单,只需要安装对应系统的驱动即可,再按照排线定义接好插上电脑即可。

破解门卡

我手里这张门卡是半加密卡(虽然我并不知道加密区有啥用),扇区 10-14 没有使用默认 Key。

以我使用的 MifareOne Tool 为例:

  1. 插上之后「检测连接」,如驱动正常将会提示找到 NFC 设备。
  2. 放上卡片,「扫描卡片」,可以看到卡片基本信息(请注意关注 SAK 值)
  3. 「检测加密」,可以判断卡片加密类型(全加密、半加密、未加密)
  4. 半加密和未加密(且 SAK 受支持)的卡片可以直接「一键解原卡」,(待软件利用 mfoc 漏洞得出加密区块密钥后)生成 Dump 或 mfd 文件;若为全加密卡,则需使用 mfcuk 得到至少一个扇区的密钥后,再利用 mfoc 进行操作。

生成 Dump 文件后,即可拿走原卡,准备模拟门卡。

模拟门卡

若为无加密卡,你甚至可以跳过上面的步骤直接用手机模拟。

半加密 / 全加密卡需要先把 ID 写到预先准备的空白卡 / 用带 Root 权限的手机模拟,再用自己的手机模拟空白卡 / 带 Root 权限的手机,然后向卡内其他区块写入之前 Dump 的内容。

写卡时使用「写M1卡」即可。(SAK=08)

1. 小区门刷不开,单元门能搞开

这很大概率是因为小米的模拟卡不可修改 0 扇区,且小米自行替换了厂商标识符(0 块最后 16 位)为 D2 00 00 01 00 00 00 00。不管你原卡是啥样小米模拟后这里都是这样。

比如我家楼下,只检测 ID 所以很好办,但是小区门就应该无解。(无能物业大嫌い)

(最难受的是我的真·门卡都刷不开小区的一扇门,一定是物业瞎改数据库了吧)

2. 模拟卡读/写不了

SAK=28?这模拟出来是一张 CPU 卡,这个工具貌似搞不定,我也没用其他的工具。

但是有的门禁系统兼容 SAK=08,有的门禁系统(电梯?)需要 SAK=28,取决于实际情况。

小米以前模拟出来貌似是 SAK=28,现在则是 08;黑加是 SAK=28,模拟白卡是 SAK=08。

3. 全加密卡爆破报错,提示 mfcuk_key_recovery_block() (error code=0x03)

这个是工具太旧导致的,可以使用这里的一个别人含有修复补丁且编译好的版本:度盘

结语

网上搜索坑一,发现不少网友也遇到这个问题。小米的模拟也不知道是出于安全着想还是怎么的而没有开放 0 扇区写入的功能,我暂且蒙在古里。

接下来的博文应该会有三篇:

  1. Dell Inspiron 7590 顶配版不负责评测 & Hackintosh 指北(你戴咕咕咕,预计下单后一个多月才能拿到笔记本)
  2. 日本十日自由行の游记(由于各种不确定因素还不知道能不能去成,但概率很大)
  3. 高中三年的破事水

那么,下次再见~

天幻
斗转星移,云卷云舒。

评论