如何使用小米手环与PN532(或类似芯片)复制验证卡号的IC卡
好久没发博客了,之前在搭的主页也没开始迁移……最近正好研究了下IC卡相关的东西,权当记录一下。
学校换了新的饭卡,之前直接上PN532的方法不好使了。推测是新读卡机会检测0扇区,操作过后果然可行。
本文不会详细讲解PN532驱动、软件等操作流程,主要也是因为网络上软件资源种类太多,能基本上都一致,简单操作就可使用。
PN532操作参考阅读:PN532!便宜又好用的NFC设备!
I 小米手环IC卡写入的几个难度等级
在尝试将IC卡写入小米手环的时候,如果不太了解IC卡的分类与原理,可以按照以下顺序尝试:
- 无加密IC卡 - 直接使用小米手环app“复制卡片”功能可以复制
现在已经很少了。 - 加密IC卡,不验证0扇区 - 使用PN532类
加密的卡片不能直接复制,需要使用芯片读取写入。 - 加密IC卡,验证0扇区卡号 - PN532 + 一张UID白卡 + “卡片复制”功能
由于直接读取、写入不会涉及0扇区,需要一张能写入0扇区的卡(UID)然后将0扇区和其他信息分别写入。 - 加密IC卡,验证0扇区卡号和厂商信息 - 基本无解
小米手环由于对厂商信息的保护,无论如何都不能复制厂商信息。
II 卡片分区
简单讲解一下关于卡片分区的问题,以便解释卡片不能直接复制的原因。
来源:小米手环4 NFC 添加加密门禁卡
首先,一般情况下0扇区的信息是不会被检测的,常规IC(M1)卡(包括小米手环“白卡”功能)也无法写入0扇区。但是,有些厂商的读卡机会检测0扇区的“卡号”内容,这时就需要一些手段来写入0扇区;
一种特殊的IC卡,UID卡能够写入0扇区。
因此,我们使用一张UID卡复制一个只有0扇区的信息,因为加密的部分全部被去除了,可以直接用小米手环app“复制卡片”。此时0扇区(除了厂商信息)会被写入小米手环。
最后,再使用PN532常规手段写入其他扇区的信息即可。
III 写入0扇区
除了需要小米手环(NFC),PN532芯片及软件之外,还需要:
- 一张UID白卡
- dump编辑(或转换)软件
- 小米手环手机app
- 首先使用PN532读取饭卡的全部信息,存储进dump文件。
- 创建一个dump文件的复制,删除除0扇区之外所有扇区0-2区块的信息,改为00。在1扇区0区块加入一行信息(随机即可)防止复制失败。
- 将删除完之后的文件写入空UID卡.
- 使用小米手环app“复制卡片”复制这张UID卡。正确的话,会显示成功,否则是被加密之类的。
- 复制成功后再使用PN532,将存在小米手环里的卡片当作一张白卡,写入初始dump文件的信息即可。由于0扇区实际上无法写入,不用担心被复写。