公司门禁丢了要150。卧槽,果断自己做几张,把原版供起来。
首先需要PN532芯片,RC522试了下,只能读卡,不能写卡。
树莓派的UART被蓝牙占用,尝试无果。用I2C接口成功。
参考网站:
参考资料附录&相关链接:
A1.libnfc配置方法
A2.libnfc安装教程
A3.libnfc用户API
A4.libnfc主页
A5.libnfc学习例程
A6.Iteadstudio PN532 Module
A7.Disable R-Pi/RASPBIAN serial console for using UART0
A8.http://geek-workshop.com/thread-10042-1-1.html
系统搭建
系统为Respbian
系统配置
执行sudo raspi-config进行配置.
选择Interface Options,启用SPI、I2C,禁用Serial
选择Advanced Options,1-Expand Filesystem 扩展分区
安装依赖
autoconf、libusb-dev、libtool、libpcsclite-dev
1 | sudo apt-get update |
工具安装
树莓派与PN532连接
树莓派3接口图
我用的I2C接口,接线方式如下。
04 <-> VCC
06 <-> GND
03 <-> SDA
05 <-> SCL
libnfc
顾名思义,nfc库。
官方github:https://github.com/nfc-tools/libnfc
1 | wget https://github.com/nfc-tools/libnfc/releases/download/libnfc-1.7.1/libnfc-1.7.1.tar.bz2 |
用I2C方式连接,需要
1 | sudo nano /etc/nfc/nfc/libnfc.conf |
填写
device.connstring = pn532_i2c:/dev/i2c-1
其他配置项默认,修改参照上面的libnfc配置
如果我们使用UART接口直接和PN532在树莓派上连接,则可以
1 | sudo cp contrib/libnfc/pn532_uart_on_rpi.conf.sample /etc/nfc/devices.d/pn532_uart_on_rpi.conf |
执行nfc-list
命令,输出
1 | ➜ ~ nfc-list |
mfoc
官方github:https://github.com/nfc-tools/mfoc
1 | git clone https://github.com/nfc-tools/mfoc.git |
mfoc用法如下
1 | Usage: mfoc [-h] [-k key] [-f file] … [-P probnum] [-T tolerance] [-O output] |
mfcuk
官方github:https://github.com/nfc-tools/mfcuk
1 | git clone https://github.com/nfc-tools/mfcuk.git |
用法,执行
1 | mfcuk |
写卡
直接使用nfc-mfclassic即可对Mifare classic系列卡片写入。主要有M1卡(S50)和4K卡(S70)。
1 | nfc-mfclassic |
详细描述
mfoc是用来破解IC卡密钥的,一般的门禁卡很可能用的是默认密钥,破解起来很快。
把要复制的卡放到读卡器上,运行
1 | mfoc -O target.dmp |
如果不成功,说明加密没有用默认秘钥,可以增加每个区块的爆破次数
1 | mfoc -P 500 -O target.dmp |
如果顺利你会看到所有block的信息都被dump出来。M1卡有16个sector,每个sector有4个block,所以一共是64个block。
然后把一张新卡放上读卡器,也dump一次
1 | mfoc -O blank.dmp |
接下来就可以写卡了
1 | nfc-mfclassic W B target.dmp blank.dmp |
写完之后可以把新卡再dump出来,与原始卡比较一下
1 | mfoc -O new.dmp |
如果diff没有显示任何结果,恭喜,卡片已经100%复制成功,甚至不用去刷卡验证就知道可以了。