PN532 和 CH340G 模块使用
原因
因为房东租的房子只给了我和我室友一张电梯卡,导致我们经常性的有一个人会被困在一楼。如果没有东西还好,一旦有要携带的东西,那爬楼是非常困难的。
所以寻找了一下复制电梯卡的方法,也就出现了这篇文章。里面有我使用的一些步骤及目前我所遇见的问题。
了解
1. 卡
确定了目的,那么接下来就是了解需要达成目的的各种方法。
首先我第一想法就是到淘宝搜索了一下 “复制电梯卡” “复制门禁卡” 等关键词的商品。当然也就不出所料的出现了以下这些商品。

排除掉一些只有几块钱的商品,剩下的商品普遍都是 40+ ,虽然价格不高,但是出于好奇还是在咸鱼上搜了以下这些设备,从几十到几百的都有。
精挑细选了几家之后找到了一个卖家。原淘宝 60+ 的设备他只出手十几还是包邮的。好奇的问了以下卖家,卖家说自己不会用所以就出了。我也就在想,要自己了解一下使用方法,别到时候自己购买了之后自己也不会使用。
在查阅一些资料之后,大概了解到了门禁卡大致分为以下几种:
-
ID卡 -
IC卡-
普通IC卡可以理解为原卡
-
UID卡是一种IC卡UID卡可以修改任意扇区,作为M1复制的子卡,主要应用在IC卡复制上。该卡片完全兼容mifare 1k卡片。卡片的block0(UID所在的block)可以任意修改,重复修改。
-
UID卡
普通复制卡,可以重复擦写所有扇区,主要应用在IC卡复制上,遇到带有防火墙的读卡器就会失效。 -
CUID卡
可擦写防屏蔽卡,可以重复擦写所有扇区,UID卡复制无效的情况下使用,可以绕过防火墙。 -
FUID卡
不可擦写防屏蔽卡,此卡的特点0扇区只能写入一次,写入一次变成 M1 卡,CUID 复制没用的情况下使用,可以绕过防火墙。 -
UFUID卡
高级复制卡,我们就理解为是 UID 和 FUID 的合成卡,需要封卡操作,不封卡就是 UID 卡,封卡后就变为 M1 卡。
-
显而易见的,那些淘宝商家和这个咸鱼卖家所售卖的均为复制
ID卡,也就自然而然的无法复制IC卡。而我的电梯卡使用的是滴胶卡,大部分滴胶卡都是IC卡,当然也不排除特意将ID卡做成滴胶卡的商家。通过以上我们得知了,物业所发给我们的原卡就是
普通IC卡,而我们需要使用UID卡来复制原卡。因为无法得知电梯是否带有防火墙功能,再考虑以下成本问题,我们这次选择购买
CUID卡来复制。 -
2. 设备
有了卡,那么我们就需要找到适用的设备,大部分文献都是推荐 PN532 来复制 IC卡,因为他价格低廉操作简单,所以这种模块的使用与除错文献相较于其他设备都是多的很多。
而 PN532 模块无法直接连接到电脑上,所以我们还需要一个串口。我首先被推荐了 PL2303 ,但随后发现 PL2303 的山寨问题很严重,导致官方驱动对于山寨版似乎有了验证,最新版本的驱动无法适配到山寨版的 PL2303 上,而最后一版支持山寨版的驱动也无法支持 Windows XP 以上的系统。
所以此次我们选择 CH340G 来作为串口连接 Windows 10 和 PN532
当然,商家肯定会赠送给你一个排线来让你连接 PN532 和 CH340G
3. 其他设备
因为购买的 PN532 是一个单纯的模块,甚至连连接的插口都没有焊接上去,所以我们还需要购买 电烙铁 来将插口焊接上去。
电烙铁焊接时需要 助焊剂 ,也可以使用 松香
PN532 和 CH340G 连接与安装
购买的 PN532 和 CH340G 及 赠送的排线 和 需要复制的白卡到手之后
-
首先需要给
PN532的插口焊接上去,这里就是纯手工技术问题,不做多阐述。如果实在不想自行焊接,可以寻找已经焊接好的PN532卖家。 -
将
PN532和CH340G按照以下表格来连接PN532 CH340G GND GND VCC 5V SDA RXD SCL TXD 购买
CH340G时,默认会有一个短接的跳线帽,将跳线帽接到CH340G上的VCC和3V3上 -
将
CH340G连接到电脑上 -
安装
CH340的驱动https://sparks.gogo.co.nz/ch340.html -
打开
MifareOneToolhttps://github.com/xcicode/MifareOneTool -
点击
检查连接,如果正常则会检测到连接的模块开始执行检测设备…… nfc-bin/nfc-scan-device.exe 使用libnfc 1.7.1 找到 1 个NFC设备: - pn532_uart:COM5: pn532_uart:COM5:115200 识别了以下设备: pn532_uart:COM5:115200 将自动选择首个设备:pn532_uart:COM5:115200 已指定使用该NFC设备:pn532_uart:COM5:115200 ##运行完毕## -
将原卡放在
PN532上并点击扫描卡片,如果正常扫描则会检测到原卡信息开始执行扫描卡片…… nfc-bin/nfc-list.exe 使用 libnfc 版本 1.7.1 NFC设备: NFC-Device 已打开 1 个ISO14443A(常见IC卡) 被动目标已发现: ISO/IEC 14443A (106 kbps) target: ATQA (SENS_RES): 00 05 UID (NFCID1): cc 62 52 63 SAK (SEL_RES): 06[Found targets=1]
##运行完毕##
8. 点击 `一键解原卡` ,如果解成功,将会提示你导出原卡数据。幸运的是,我的这张原卡可以使用这个方法直接获取到密钥并且直接解密原卡数据。
9. 将 `CUID白卡` 放到 `PN532` 上并点击 `扫描卡片` ,如果正常扫描则会检测到白卡信息
开始执行扫描卡片……
nfc-bin/nfc-list.exe 使用 libnfc 版本 1.7.1
NFC设备: NFC-Device 已打开
1 个ISO14443A(常见IC卡) 被动目标已发现:
ISO/IEC 14443A (106 kbps) target:
ATQA (SENS_RES): 00 04
UID (NFCID1): b2 d3 ff 1b
SAK (SEL_RES): 08
[Found targets=1]
##运行完毕##
10. 点击 `写C/FUID卡` ,如果成功则会提示
推测大小: 可能是 1024-byte 大小的卡片
提示: 这张卡不需要后门写 (W)
需要写入 64 个块 |……………………………………………………….|
完成!写入了 64 / 64 个块.
11. 点击 `一键解原卡` ,并将复制卡数据改为另一个文件名
12. 在 `高级操作模式` 中的 `集成辅助工具` 的 `差异比较`。`A` 选为 **原卡** 信息,`B` 选为 **复制卡** 信息并确定比较。如果成功则会提示 `共找到 0 个块不同`
### 其他
---
- 如果遇见 `PN532` 连接 `GND` 或 `VCC` 不通电的情况,则可能是 `PN532` 短路,需要寻找商家更换
- 如果遇见写入失败的情况,则可以到 `软件设置` 中关闭 `卡相关操作` 中的所有选项
更新
在测试复制卡之前请务必先要使用原卡刷一遍再刷复制卡,以防止有滚码系统导致原卡失效!!!
在复制卡之后因为没有先测试原卡,以至于滚码系统更新了滚码之后导致了我原卡的失效,这样里外里还是只有一张卡。
尝试了很多方法,比如锁死滚码区,改编码编号,改卡号等等方法,均没有效果。
最终还是找到房东,让其给了另一张卡,就说原卡已经消磁。对于大部分人来说,他们不理解消磁的含义,基本上可以利用这一点社工一下他们。
原卡已经被房东拿走,但是手上还有复制的另一张卡,加上房东新给的一张,最后获得了两张。
想要破解发卡规则的话可能还是需要至少三张不同的原卡才能找到发卡规则。最后还是没有去折腾这个方法。