无需手机仅用pn532 完成小米手环3NFC 校园卡模拟

本教程详细介绍如何使用PN532模块完成小米手环3/4/5的门禁卡写入模拟,适用于全加密饭卡及校园卡,无需手机辅助,直接通过电脑操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

只利用PN532完成小米手环3/4/5 的门禁卡写入模拟

转载自https://www.luuns.com/v/9/ 整合改写By 博主

前言
本教程仅教学如何使用手环模拟全加密饭卡,仅供个人学习,请勿修改数据金额,由此带来的任何非法后果均由个人承担。本教程仅教学如何使用手环模拟全加密饭卡,仅供个人学习,请勿修改数据金额,由此带来的任何非法后果均由个人承担。

2019暑期更新
我用了我们同学的小米手机8和华为手机试了试,发现用同样的方法竟然也可以模拟饭卡和门禁,这就很有趣了,更多玩法可以自己去试试看,但不排除厂商之后锁死0扇区的可能

2020.11更新
已经尝试过,小米手环5NFC版也可以使用本教程

可以模拟的卡片类型

小米手环3 NFC版可以模拟的卡类型是13.56MHZ的MIFAREClassic的1K卡,id与cpu卡不可模拟,不知道自己是什么卡的可以百度辨认方法(手机下载MCT查看卡类型,SAK28与SAK20可以直接去世),这篇主要讲怎么模拟全加密的饭卡以及校园卡

设备和所需硬件

在这里插入图片描述

  1. 带有全功能nfc手机一台
    使用带有NFC功能的手机来读写手环,个使用的是小米8。需要先安装MIFARE Classic Tool(MCT)软件。
    本文无需使用nfc手机,只需要利用手机连接小米运动即可
  2. PN532模块和USB转TTL模块一套
  3. 一张可读写0扇区的cuid卡

pn532模块的使用

如果买的是焊接好的话,按照上图或者下方文字说明插线即可(注意别接错)
某宝的话,请看商品详情的接线图或者询问卖家

GDN ---- GDN
VCC ---- +5V
TXD ---- RXD
RXD ---- TXD
如果买的时候让商家帮你连接好的话,那插线这一步你就省了
下一步把usb口插入电脑安装驱动

驱动安装好后打开设备管理器确定你的pn532端口号,然后用记事本打开“libnfc.conf”修改成你的端口号

上位机读取数据

这一步主要是区分半加密卡和全加密卡,打开文件夹内的上位机,把卡放在pn532上面点击读取卡片内容,如果提示此卡为全加密卡的话,请回原文查看
如果提示成功读取并且下方有数据出现的话

点击“发现NFC设备”按钮下方的小三角形即可保存dump文件(在表格第一个格子点击小三角)
扇区左侧的灰色三角
点击扇区左侧的灰色三角,导出保存为full.dump,这是我们最后将写入的完整门禁信息文件

小米手环3 配置新卡

为了写入卡数据,我们需要先在手环里制作一张白卡,模拟0扇区的数据,最后将完整数据导入

  1. 将刚才0扇区的0块后面的所有数据复制到记事本备用(这是未加密0扇区的内容)
    如下面这张图就应该得到293006647B0804006263646566676869
    在这里插入图片描述
  2. 在pn532上放上一张空白cuid卡,点击读取全部内容,下面的数据除了第一行应该得到的是大量的00,也就是空卡的数据内容
  3. 把第一行的数据改写成刚才记事本中的内容(直接像编辑excel一样)我这边就写入上图的293006647B0804006263646566676869
  4. 最后点击灰色三角导出保存为small.dump,这是我们开启手环模拟卡的dump文件
  5. 点击写“普通m1卡”,选择改好的small.dump,写入即可
  6. 小米运动中打开手环模拟功能写入这张cuid卡即可
    在这里插入图片描述
    之后手环上应该已经可以看到一张新卡,但目前还是一张空白的卡

利用电脑软件将dump写入小米手环

  1. 手环放到pn532上
  2. 看下面注意的要点,更改libnfc的端口设置
  3. 下载的工具里面应该有一个libnfc 1.7.1带配置文件工具,按win+R输入cmd打开命令行,输入盘符D: (因为我这里放在了D盘,根据个人条件更改即可)然后把这个文件夹拖进来 回车,进入这个文件夹,或者直接看第三步

cmd在这里插入图片描述
4. 打开libnfc文件夹内的打开mfoc.bat(下图就是那个 A命令行.bat)(这一步也可以直接cmd进入libnfc的文件夹,如cd libnfc的文件夹地址)输入nfc-mfclassic.exe w A xxxxx.dump
直接点击 命令行.bat打开

注意:xxxxx.dump是你破解出来的加密卡数据,一定要注意文件路径对不对,可以先写入nfc-mfclassic.exe w A (A后面有空格)然后再把dump文件拖到窗口就可以自动添加路径

  1. 接着回车即可写入(没反应就多点几次回车),如果写入成功就如下图所示教程结束,卡已经刷入手环,现在就可以拿去刷卡了,写入失败重复以上步骤,多次失败老老实实使用手机MCT写入手环

注意:先驱动安装好后打开设备管理器确定你的pn532端口号,然后用记事本打开libnfc.conf修改成你的端口号后才能进行,如果缺失libusb0.dll从别的地方拖一个进来就行

libnfc.conf 内容

下面的内容放进去就可以了,端口速度最好是115200,端口号根据自己的具体情况改下就行,保存为libnfc.conf文件

device.name = "microBuilder.eu"
device.connstring = "pn532_uart:COM5:115200"

在这里插入图片描述

参考资料

https://www.luuns.com/v/70/
https://www.bilibili.com/video/av33911423
https://www.luuns.com/v/9/

03-17
### PN532 NFC模块的使用说明、驱动与开发文档 #### 1. 模块概述 PN532 是一款高度集成的 NFC 和 RFID 控制器芯片,支持多种非接触式通信方式和协议。该模块内置了一个 80C51 微控制器内核,并能够在 13.56 MHz 下运行,兼容 ISO/IEC 14443 A/B 类型以及 MIFARE 协议等多种标准[^3]。 #### 2. Windows 下 libnfc 的配置与使用 为了在 Windows 平台上操作 PN532 模块并实现完整的 NFC 功能,可以借助 `libnfc` 库完成开发工作。以下是具体流程: - **安装依赖环境** 需要先下载并编译适合目标平台版本的 `libnfc` 库文件。可以从官方仓库获取最新源码,并按照其提供的构建指南进行设置[^1]。 - **硬件连接** 将 PN532 模块通过 SPI 或 I²C 接口接入计算机 USB 转串口适配器中;或者直接利用 Arduino 板载接口来简化电路设计过程。 - **初始化设备** 编写一段简单的 C/C++ 测试代码以确认基本功能正常运作情况如下所示: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <nfc/nfc.h> int main(int argc, char *argv[]) { nfc_device *pnd; nfc_context *context; nfc_init(&context); if (NULL == context) { printf("Unable to init libnfc\n"); exit(EXIT_FAILURE); } const size_t iDeviceCount = nfc_list_devices(context, NULL, 0); if(iDeviceCount){ pnd = nfc_open(context, NULL); // Open first found device. if(pnd != NULL){ printf("NFC reader: %s opened\n", nfc_get_device_name(pnd)); /* Add your application logic here */ nfc_close(pnd); }else{ printf("No supported devices found.\n"); } } nfc_exit(context); return EXIT_SUCCESS; } ``` 此脚本展示了如何打开已检测到的第一个可用读卡器实例,并打印出名称信息作为调试反馈。 #### 3. STM32 平台上的 PN532 驱动程序 对于嵌入式系统而言,在 ARM Cortex-M 架构处理器(如 STM32 系列)上部署 PN532 更加常见。为此目的专门定制了一套开源解决方案——即上述提到过的 GitCode 存储库链接指向的内容[^2]。其中包含了详细的 API 文档描述以及实际案例演示片段供参考学习之用。 开发者可以根据自身需求调整参数选项从而满足特定应用场景的要求。例如修改波特率设定值以便适应不同传输速率条件下的稳定通讯性能表现等方面均有所涉及。 ---
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值