用树莓派3B+和 ITEAD PN532 读取、破解、写入M1卡
这是一篇介绍如何用树莓派使用PN532的随笔,介绍了具体的使用步骤。
首先介绍一下:
①、IC卡是非接触式的智能卡,里面一般是一个方形线圈和一个小芯片(用强光照着可以看到)。M1卡是IC卡的一种,一般水卡、公交卡都是这种。UID卡是M1的复制子卡,与M1完全兼容。M1卡0扇区的内容可读不可写,UID卡所有扇区均可读可写,所以M1卡的数据能复制到UID卡中,而不能复制到M1卡中。
平常用的M1卡有16个扇区,一个扇区4个块,一个快16个字节,一共1K数据。每个扇区的前三个块是数据区,最后一个块是keyA、控制段、keyB的存储区域,分别是6个字节,4个字节,6个字节。第0扇区的第0块记录了制卡厂家的或者卡的ID信息,只可读,不可写。

②、ITEAD PN532是为嵌入式设计的PN532板子,可以用树莓派控制(我用window读取不出来),它有2种数据传输模式,SPI和I2C。

操作步骤:
用的是I2C接口传输数据,SET0-->H,SET1-->L
连线方法:
树莓派<----->PN532
4口 <-----> VCC
6口 <-----> GND
3口 <-----> SDA/TX
5口 <-----> SCL/RX

另附一张树莓派GPIO图:

①、在树莓派上安装必要的库:
sudo apt-get install libusb-dev libpcsclite-dev //这是libnfc依赖的库
sudo apt-get install automake autoconf //这是编译时用到的
如果安装libusb-dev和libpcsclite-dev报版本错误安装失败“ Unable to correct problems, you have held broken packages.”,
可执行命令:aptitude install libusb-dev ,然后依次输n、y、y 即可。
②、安装nfc操作模块:
libnfc(操作nfc):
wget http://dl.bintray.com/nfc-tools/sources/libnfc-1.7.1.tar.bz2
tar -xf libnfc-1.7.1.tar.bz2
cd libnfc-1.7.1
./configure --prefix=/usr --sysconfdir=/etc
make
sudo make install
mfoc(破解key,读出数据到文件):https://github.com/nfc-tools/mfoc
mfuck(破解全加密数据):https://github.com/nfc-tools/mfcuk
后两个下载解压后切换到目录里执行:
automake
autoconf
autoreconf -is
./configure
make
make install
③修改配置文件:
cd /etc
sudo mkdir nfc
sudo nano /etc/nfc/libnfc.conf
添加以下内容:
# Allow device auto-detection (default: true)
# Note: if this auto-detection is disabled, user has to manually set a device
# configuration using file or environment variable
allow_autoscan = true # Allow intrusive auto-detection (default: false)
# Warning: intrusive auto-detection can seriously disturb other devices
# This option is not recommended, so user should prefer to add manually his/her device.
allow_intrusive_scan = false # Set log level (default: error)
# Valid log levels are (in order of verbosity): 0 (none), 1 (error), 2 (info), 3 (debug)
# Note: if you compiled with --enable-debug option, the default log level is "debug"
log_level = 1 # Manually set default device (no default)
# To set a default device, users must set both name and connstring for their device
# Note: if autoscan is enabled, default device will be the first device available in device list.
device.name = "Itead_PN532_I2C"
device.connstring = "pn532_i2c:/dev/i2c-1"
④、开启树莓派i2c:
执行 sudo raspi-config ,在第5项里打开i2c。
⑤、测试
重启一下,看看有没有i2c设备:ls /dev 或者 lsmod
执行 i2cdetect -y 1 ,如果出现的不全是横杠,就代表连接成功了,如下图:
如果全是横杠的话,拨一下pn532的vcc线再插上试试。ps:我的也是死活显示没有,然后重插一下就有了。

放上一张卡执行 nfc-list,如果正常显示下面内容就表示读取到卡了。
如果提示closed,就是板子没正常接通。

⑤、读写数据:
mfoc -O output.mfd // 读出卡中的数据保存为文件output.mfd
mfoc 是读取数据,如果有加密就自动破解,如果全加密,就没法读取,可用mfuck命令破解。
nfc-mfclassic w a output.mfd output.mfd // 写入数据,w小写,如果大写是强写0扇区
由于每张卡的0扇区信息(UID)不一样,0扇区又不可写,不同的卡没法互写。但是可写入0扇区可写的UID卡。
我把读出来的数据写入它自己里可以写入,暂时没有UID卡,就没办法将数据写入空卡里。
参考:http://ju.outofmemory.cn/entry/204150
用树莓派3B+和 ITEAD PN532 读取、破解、写入M1卡的更多相关文章
- 4安德鲁斯.2.2在系统,具有系统权限的应用程序无法读取或写入SD卡
有两个解决方案: 1.通过改动android系统的源代码,开放SD卡的读写权限,具体的改动方法和说明.能够參考网上资料http://www.ifeegoo.com/android-debug-stat ...
- M1卡破解(自从学校升级系统之后,还准备在研究下)【转】
本文转载自: M1卡说明及使用proxmark3破解方法 看了网上写的一些关于M1卡的文章,多数有些误导之嫌.首先谈谈M1卡的规格,M1卡的容量为1KB,好多网上写8KB,这里其实是有个误区,应该是8 ...
- 树莓派3B+(一)
第一步:安装raspbian系统 介绍:Raspbian是为树莓派设计,基于Debian的操作系统,由一个小团队开发.其不隶属于树莓派基金会,但被列为官方支持的操作系统. 下载地址:https://w ...
- 树莓派3B+首次登陆通过网络
树莓派3B+默认串口不能登录,即使可使用可需要通过连线方式连接,如何才能直接通过网络ssh登录树莓派呢? 串口问题及使用 树莓派3的UART串口的使用问题,该串口问题的官方反馈及回复请参考这两篇官方博 ...
- 树莓派3B/3B+ 清华镜像系统和安装中文输入法Fcitx及Google拼音输入法
你还在为树莓派无法安装中文输入法而到处找教程吗? 你还在为树莓派每次下载都要远隔重洋获取资源,龟速下载而烦恼吗? 为了解决这个问题,在这篇树莓派教程中,我将手把手叫你怎样安装 清华镜像系统和中文输入法 ...
- [记录]学习树莓派3B接DHT11和LCD1602和修改树莓派时区
前提 树莓派系统安装好 apache web 服务器,如未安装,可在树莓派内执行sudo apt-get install apache2 进行安装apache 也可以通过命令获取GPIO信息: gpi ...
- 树莓派通过模数转换芯片ADC0832读取LM35温度传感器数据
树莓派通过模数转换芯片ADC0832读取LM35温度传感器数据 今天和小朋友一起玩树莓派,打算来做一个测量室温的小实验.经过几个小时的研究和测试,终于能够成功读取LM35传感器的温度数据了.本文主要记 ...
- 使用微创联合M5S空气检测仪、树莓派3b+、prometheus、grafana实现空气质量持续监控告警WEB可视化
1.简介 使用微创联合M5S空气检测仪.树莓派3b+.prometheus.grafana实现空气质量持续监控告警WEB可视化 grafana dashboard效果: 2.背景 2.1 需求: 1. ...
- 树莓派3B的食用方法-1(装系统 网线ssh连接)
首先要有一个树莓派3B , 在某宝买就行, 这东西基本上找到假货都难,另外国产和英国也没什么差别,差不多哪个便宜买哪个就行. 不要买店家的套餐,一个是配的东西有些不需要,有的质量也不好. 提示:除了G ...
随机推荐
- LearnHowToThink
一.BubbleSort and XListview 1.BubbleSort (1)analysis traverse.compare.exchange.cycle.optimize strateg ...
- redis复制+Sentinel搭建
1:实验环境 测试环境两台: master:172.16.16.34 slave:172.16.16.35 redis版本:redis3.2 要搭建的环境是,redis简单主从复制 2:安装redis ...
- RESTful架构及SOA架构简单解析
1.RESTful架构 本人也是刚接触ASP.NET开发,以下为自己简单的理解,并做了一些记录,表述不当或者错误之处还请指正,在此谢过. 首先,REST(REpresentational State ...
- mysql中通过my.cnf设置默认字符集utf-8
选项配置 配置文件路径:/full/path/mysql/bin/my.cnf (默认为/etc/my.cnf ) [client] default-character-set=utf8 [mysql ...
- Eclipse启动JVM机制
1.Eclipse启动的时候,会启动一个JVM来运行eclipse(因为Eclipse是Java代码实现的) 2.Eclipse启动一个带main的主类的时候,会单独启动一个JVM来运行他. 3.Ec ...
- 微软在线 VSTS/TFS 使用简介,如何删除项目,帐号,获取git地址等
名称:微软 VSTS 全称: Visual Studio Team Services 地址:https://www.visualstudio.com/zh-hans/ 说明:注册就可以了使用了(如何使 ...
- maven仓库使用HTTP代理,maven仓库使用本地jar
setting.xml <proxies> <proxy> <id>proxy</id> <active>true</active&g ...
- Hibernate初探之单表映射
http://www.imooc.com/video/7816 1.什么是ORM?为什么使用Hibernate? 对象关系映射:为了少写和底层数据库相关的sql语句,方便程序的维护.修改,提高跨平台性 ...
- 漫谈 Clustering (4): Spectral Clustering
转:http://blog.pluskid.org/?p=287 如果说 K-means 和 GMM 这些聚类的方法是古代流行的算法的话,那么这次要讲的 Spectral Clustering 就可以 ...
- [由于远程方关闭传输流,身份验证失败]一次处理支付接口bug记录
因公司系统升级,出现突然有些银行卡不能支付的情况,最开始排查发现是第三方平台接口返回有问题: 返回如下: 从11月7日下午开始一直联系第三方,第三方开始排查,一直说是数据格式有问题. 修改格式以后问题 ...