由于学校出入部分门禁需要刷卡,但是本人经常忘记带实体校园卡,于是决定复制校园卡至手机NFC卡包。

开始前工作

硬件准备

请自行购买PN532、CH340并安装CH340驱动
硬件连线按照RX->TX、TX->RX、VCC->VCC、GND->GND连接即可(如下图)

下载MifareOneTool工具

Github下载:网页链接
镜像下载:网页链接

破解原卡片

打开M1T,点击“检测连接”,待检测到PN532后,将卡片放到PN532线圈上。点击“扫描卡片”,成功检测到卡片后,点击一键解原卡。解密约耗时10分钟,解密后,保存DUMP文件至本地。

修剪DUMP文件

由于手机模拟的NFC卡片基本为S50(SAK08),直接写入破解获得的DUMP文件会报错写入失败,报错“加载的s50卡文件大小异常”。

本修剪方法仅适用于卡片数据大小小于1KB(即数据全在卡片前1KB空间),否则修剪后卡片可能无法正常使用

使用WinHex打开DUMP文件

在WinHex中导入DUMP文件

裁剪DUMP文件大小

点击“编辑”->“定义选块”,在弹出的输入框中的结束位置输入3FF(表示截取前1KB)

保存新的DUMP文件

点击“编辑”->“复制选块”->“另存为新文件”,将修改后的文件保存至电脑(注意:后缀最好以DUMP或者MFD结尾,否则可能无法被M1T找到)

写入到手机NFC

手机复制卡号

在手机中复制一张带卡号的空白卡(不要创建空白卡再写入,因为手机的空白卡卡号是无法修改的)

修改M1T设置

取消选中M1T软件设置的“自动判断Key(Beta)”选项,此选项可能导致写入卡时报错“错误: 卡片被移开”

经后期重复实验,发现不取消选择此选项也能正常写入。故判断应无需进行此步操作,仅需对DUMP文件进行裁剪即可。上述报错可能因DUMP文件与卡片实际大小不符导致的报错。

写入到卡片数据

在M1T软件首页点击“写C/FUID卡”,弹窗选择取消即可

写入成功

最后在门禁上测试是否写入成功(可能会出现部分区块写入失败,比如提示62/64、63/64等,可以忽视,只要功能正常即可)

附录:如何将S70卡片内容复制到S50实体卡片

如果你直接将上述裁剪过的S70数据写入到S50卡片中,第一次写入将会成功,但如果后续使用M1T再次写入,M1T可能因卡片数据问题而错误的将卡片识别为S70卡片,拥有4096-byte大小的ROM空间,而导致写入失败。
对于此问题,最简单的方法即为将S70数据先写入到手机NFC卡包中,然后使用已知密钥将手机NFC卡片数据读出。此时读出的卡片数据为标准的S50卡片数据。再将此卡片数据写入S50卡片即可。
注意,在操作时,请注意密钥选择,否则可能导致写入/读取失败。最笨的方法可以将KeyA、KeyB、默认密钥全部尝试一遍。


广告
广告正在加载中...
暂不开放评论,如对本文有任何疑问,请联系i#mr-wu.top(#替换为@)