手机NFC模拟门禁卡:从入门到实践的完整知识体系
前言
NFC 模拟门禁卡这件事,说简单也简单——品牌手机自带功能点几下就能用;说复杂也复杂——遇到加密卡、防火墙、滚码等场景,需要从卡片的底层原理到手机系统层面逐层理解才能搞定。
这篇文章从「卡片分类」这个最基础的知识点开始,逐层展开到 M1 卡存储结构、加密类型、门禁防伪系统、手机模拟方案(品牌机方案 + Root 通用方案),再到硬件工具和常见问题排查。目的是帮你建立一套完整的知识体系,遇到具体问题时能按图索骥。
⚠️ 免责声明:本文仅用于技术研究和知识分享。复制门禁卡应遵守相关法律法规,仅限复制自己有权使用的卡片,不得用于非法目的。
一、基础概念:IC 卡与 ID 卡
门禁卡从技术原理上分为两大类:
| 类型 | 频率 | 存储方式 | 手机模拟 | 典型场景 |
|---|---|---|---|---|
| ID 卡 | 125KHz(低频) | 只存储固定编号,不可写入 | ❌ 不支持 | 老旧门禁、停车场 |
| IC 卡 | 13.56MHz(高频) | 可读写,有存储空间 | ✅ 支持 | 现代门禁、电梯卡、公交卡 |
手机 NFC 工作频率是 13.56MHz,因此只能模拟 IC 卡。如果你把手机贴上去完全没反应,大概率门禁是 ID 卡系统,手机模拟这条路就走不通。
IC 卡的主流标准是 Mifare Classic 1K(简称 M1 卡),由 NXP(恩智浦)公司研发,执行 ISO/IEC 14443 Type A 标准。目前大多数手机厂商的 NFC 芯片也是 NXP 方案,另一部分为 BRCM(博通)方案——均执行同一标准,这是手机能够读写 M1 卡的技术基础。
二、卡片分类
市面上常见的 IC 卡片类型及用途如下:
| 卡片类型 | 全称 | 可否修改 0 扇区 | 防墙能力 | 用途 |
|---|---|---|---|---|
| M1 卡 | Mifare Classic 1K | ❌ 不可修改(出厂锁定) | — | 正规发行的门禁卡/电梯卡 |
| UID 卡 | UID Writeable Card | ✅ 可反复修改 | ❌ 门禁有防火墙则失效 | 普通复制卡,早期常见 |
| CUID 卡 | CUID Writeable Card | ✅ 可反复修改 | ✅ 可穿透大部分防火墙 | 升级复制卡,推荐使用 |
| FUID 卡 | FUID Writeable Card | ✅ 仅可写入一次(写后变 M1) | ✅ 防火墙无法检测 | 高级复制卡 |
| UFUID 卡 | Ultra FUID Card | ✅ 封卡前可修改,封卡后同 M1 | ✅ 防火墙无法检测 | 超高级复制卡,最灵活 |
关键说明
- M1 卡:0 扇区不可修改,其他扇区可以反复擦写。我们日常使用的门禁卡、电梯卡基本都是 M1 卡。我之前批发的几毛钱一片的就是 M1 卡——0 扇区不能修改,不能用来复制卡,只能做标签卡使用。
- UID 卡:出现较早,会响应后门指令,可被使用后门指令检测是否为克隆卡的机器发现。
- CUID 卡:针对 UID 卡做的优化,不会响应后门指令,一般可绕过读卡器防火墙。如果要复制卡,CUID 卡是性价比最高的选择。
- FUID / UFUID:针对更严格的防火墙设计,写入 0 扇区后「封卡」变为普通 M1 卡,门禁系统无法区分。
三、M1 卡存储结构
M1 卡容量为 1024 字节(1KB),分为 16 个扇区(索引 0~15),每个扇区有 4 个块(索引 0~3),每块 16 字节。
扇区结构示意
扇区 0: [块0] [块1] [块2] [块3(系统保留)]
扇区 1: [块0] [块1] [块2] [块3(系统保留)]
...
扇区15: [块0] [块1] [块2] [块3(系统保留)]
关键要点
| 位置 | 内容 | 说明 |
|---|---|---|
| 0 扇区 0 块 | 厂商 UID 码(前 8 位) | 卡片唯一识别码,出厂写入,普通 M1 卡不可改 |
| 0-15 扇区 0-2 块 | 数据存储区 | 存储门禁/电梯的授权数据 |
| 每个扇区第 3 块 | 系统保留块 | 存储密码 A / 控制码 / 密码 B |
系统保留块结构(每扇区第 3 块,16 字节)
| 偏移 | 内容 | 字节数 | 说明 |
|---|---|---|---|
| 0-5 | KeyA(密码 A) | 6 字节 | 用于验证读取权限 |
| 6-8 | 控制码 | 4 字节 | 控制该扇区的读写权限策略 |
| 9-11 | 控制码(续) | — | 默认值:FF078069 |
| 12-15 | KeyB(密码 B) | 6 字节 | 用于验证写入权限 |
💡 默认密码:大多数 M1 卡出厂默认密码 A/B 均为 12 个
F(FFFFFFFFFFFF)或 12 个0。门禁系统发卡时会修改密码。
四、加密类型
根据密码是否默认值,可以将卡片分为三种状态:
| 加密类型 | 定义 | 破解难度 |
|---|---|---|
| 非加密 | 全部 16 个扇区的 A/B 密码均为默认值 | 无需破解,直接读写 |
| 半加密 | 部分数据扇区密码非默认值 | 中等——用软件字典/工具可破解 |
| 全加密 | 所有扇区密码均非默认值 | 需要专业工具(PN532 等)破解 |
好消息:M1 卡的加密算法(CRYPTO1)多年前已被破解。即使全加密,现成的工具也能在几分钟到几小时内完成破解。
五、门禁防伪系统(防火墙)
为了防复制,门禁厂家开发了多种防伪机制。了解你的门禁属于哪种,直接决定复制方案的选择:
| 防伪类型 | 原理 | 可复制性 | 说明 |
|---|---|---|---|
| 加密型 | 对扇区加密,非法卡片无法通过密码验证 | ✅ 可破解 | M1 加密已公开,PN532/PM3 可破解 |
| 篡改型 | 刷卡时系统尝试写入 0 扇区,成功则判定为复制卡 | ⚠️ 需用 CUID | 利用 UID 卡可写的特性做检测 |
| 滚码型 | 每次刷卡读写校验码,校验码动态变化 | ❌ 不可复制 | 除非找出校验算法规律,否则无法复制 |
| 后门检测型 | 使用后门指令检测卡片类型 | ⚠️ 需用 CUID/FUID | UID 卡会被识别,CUID 不会被发现 |
实战中最常见的是前两种:加密型 + 篡改型。这也是为什么 CUID 卡能「穿透大部分防火墙」——CUID 既不响应后门指令(防篡改检测),又能被写入数据(破解加密后写入)。
六、工具与软件生态
6.1 Android APP
| 工具名称 | 类型 | 说明 | Root 需否 |
|---|---|---|---|
| Mifare Classic Tool (MCT) | 免费 | 读写卡、分析转储(dump)、密码字典破解、克隆,标配 | ❌ 不需要 |
| NFC Reader Tool | 付费 | 一键破解/读写/格式化,需配合外接读卡器 | ❌ 不需要 |
| NFC TagInfo | 免费 | 识别卡片类型和手机 NFC 芯片型号 | ❌ 不需要 |
| Card Emulator | 免费 | 配置模拟卡片 | ✅ 需要 Root |
| 标签助手 | 免费 | 写入 URL/文本/电子名片等数据 | ❌ 不需要 |
MCT 是入门首选——免费、功能全、不需要 Root。内置了 std.keys 和 extended-std.keys 两个默认密码字典,用来破解半加密卡效率很高。

6.2 MCT 写卡要点
使用 MCT 写入 CUID 白卡时的关键操作:
- 全卡复制:用「写转储(克隆)」dump 模式一次性写入整个转储文件
- 修改控制码:推荐将控制码改为
08778F69,这样设置后:- KeyA 用于读取(可见)
- KeyB 用于写入(不可见)
- 优点:防止被覆盖写入、A 密码不可读、支持定点修改
- 全卡复制前先格式化全卡,确保扇区状态一致
6.3 硬件设备
| 设备 | 价格区间 | 说明 |
|---|---|---|
| PN532 | 30-80 元 | 入门级,USB/蓝牙/UART 接口,配合 NFC Reader Tool 可用 |
| Proxmark3 (PM3) | 200-600 元 | 专业级,可破解低频 ID 卡和高频 IC 卡,功能最强 |
| COPY5 / ACR122U | 100-300 元 | 商用级读写器,稳定性好,适合批量操作 |
对于普通用户,PN532 配 NFC Reader Tool 是最低成本的入门方案。如果只是复制一张卡,买个带吸波片的 CUID 芯片贴(2 元左右)+ 找一台支持 NFC 的 Android 手机 + MCT APP 就能搞定,不一定需要买读卡器。
七、手机模拟加密门禁卡的方案
这是最核心的实操章节。根据手机是否 Root,分为两条路径:
7.1 方案 A:品牌手机自带功能(免 Root)
适用机型:小米(小米钱包)、华为/荣耀(钱包 App)、vivo(钱包)、OPPO(钱包)
四种检测情况:
| 手机提示 | 含义 | 对策 |
|---|---|---|
| 正常进入下一步 | ✅ 未加密 M1 卡 | 直接模拟成功 |
| 读卡无反应 | ❌ 是 ID 卡 | 无法用手机 NFC 模拟 |
| 提示不支持模拟 | ❌ 非标准 M1 卡 | 公交卡/银行卡等不适用 |
| 提示卡片加密 | ⚠️ 加密 M1 卡 | 需要按以下步骤操作 |
解决加密卡模拟问题的完整流程
遇到「卡片加密」提示时,需要借助工具按以下步骤操作:
第 1 步:破解母卡获取 dump 文件
使用 NFC Reader Tool(付费)+ 蓝牙/OTG 读卡器(如 PN532),点击一键解密,等待工具自动完成破解,生成 dump 文件(卡片完整数据镜像)和密钥文件。
第 2 步:格式化母卡为空卡
将原加密门禁卡通过 MCT 或 NFC Reader Tool 格式化为非加密状态(所有扇区密码重置为默认值)。
第 3 步:手机模拟母卡
用华为/小米钱包的「模拟门禁卡」功能,模拟这张已经变为非加密的母卡。此时手机端会显示模拟成功。
第 4 步:将数据写回手机模拟卡
用 MCT 读取手机模拟的虚拟卡,将第 1 步得到的 dump 文件和密钥写入手机模拟的卡片中。写入完成后,手机就完全替代了原来的加密门禁卡。
💡 原理:品牌手机钱包只能模拟非加密 M1 卡(这是系统限制)。破解 → 格式化 → 模拟 → 写回 这套流程的本质是「绕过」这个限制,让手机以为自己模拟的是一张普通卡。
7.2 方案 B:Root 后通用模拟(通用方法)
适用机型:任何有 NFC 的 Android 手机(需 Root),尤其是非华为/小米品牌
第一步:识别手机 NFC 特性
用 NFC TagInfo APP 测试手机模拟卡片时的表现:
| 类型 | 特征 | 方案 |
|---|---|---|
| 情况 1/2 | 识别不到卡片 / UID 固定不变 | ✅ 直接修改配置文件 |
| 情况 3 | UID 为 08 开头随机值(Android 7+ / 三星 S6+ 等) | ⚠️ 需间接修改 NCI 层 |
直接修改配置文件
找到并修改以下文件(路径可能因机型不同):
/vendor/etc/libnfc-nci.conf
/vendor/etc/libnfc-nxp.conf
/vendor/etc/libnfc-brcm.conf
也可以用 Card Emulator APP——配置文件在 /card emulator/cards.json,编辑后重启 NFC 即可。
间接修改 NCI 层(高级)
对于情况 3 的机型,配置文件修改无效,需要反编译修改 NCI 层的 libnfc-nci.so 函数,控制 NFCC 改变随机应答码。这个操作门槛较高,建议非必要不使用。
八、CUID 物理复制(独立复制方案)
当手机模拟这条路走不通时(例如门禁是 ID 卡、或者手机 NFC 芯片兼容性有问题),物理复制卡是最后的方案。
CUID 芯片贴的相关知识点已在前面章节介绍,这里补充实操要点:
CUID 芯片贴使用说明
| 项目 | 说明 |
|---|---|
| 使用场景 | 复制 M1 卡后贴到手机壳上使用 |
| 芯片容量 | 1024 字节(约 400-500 个汉字) |
| 感应距离 | 1~3 cm(主要由读卡器决定) |
| 尺寸 | 圆形,直径 25 mm(和一张纸差不多厚) |
| 编辑工具 | MCT APP(复制门禁卡)、标签助手(写入信息/指令) |
注意事项
- 芯片贴不可以直接贴在金属或手机表面——金属会屏蔽电磁场,导致无法正常感应。
- 如果必须贴在金属或手机表面,需加装吸波片(防磁贴),厚度约 0.12 mm,购买时可选配套吸波片的链接。
- 芯片贴一面有背胶,可粘贴在木/玻璃/塑料等材质表面,也可放入滴胶挂件、玩具、毛绒公仔内。
- 感应距离 1~3 cm,主要取决于读卡器而非芯片贴本身。
- M1 加密卡需先用读卡器设备破解得到 dump 文件再写入 CUID;非加密卡可直接用 Android 手机 + MCT 复制。
九、常见问题排查
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| 手机读卡完全没反应 | 门禁是 ID 卡(125KHz) | ❌ 手机无法模拟,考虑 CUID 物理复制 |
| 手机提示「模拟成功」但刷不开 | 门禁有防火墙/滚码 | 换 CUID/FUID 卡物理复制 |
| 提示「卡片加密」 | 加密 M1 卡 | 按第 7.1 节流程操作 |
| 提示「不支持模拟」 | 非标准 M1(公交卡等) | 无法用品牌机自带功能,考虑 Root 方案 |
| 华为 Mate30 模拟异常 | 特定机型 NFC 兼容性问题 | 参见华为 Mate30 NFC 异常解决 |
| CUID 卡刷开后门禁重启 | 门禁检测到 CUID(篡改型防火墙) | 尝试 FUID/UFUID 卡 |
| 白卡写入后无法读取 | 控制码设置了错误的读写策略 | 修改控制码为 08778F69 重新写入 |
十、方案选择决策树
如果你不确定走哪条路,按这个流程判断:
门禁卡贴手机 → 有反应?
├── ❌ 完全没反应 → 可能是 ID 卡 → 物理 CUID 复制方案
├── ✅ 但有反应
├── 手机提示「已加密」→ 走 7.1 品牌机免 Root 流程
├── 手机提示「不支持」→ 检查是否是加密卡
│ ├── 手机有 Root → 走 7.2 方案
│ └── 手机无 Root → CUID 物理复制
└── 手机正常模拟 → 🎉 大功告成
十一、安全与法律提示
⚠️ 重要:以下内容请认真阅读
- 所有权:仅限复制你自己拥有所有权的卡片(自家门禁、个人固定车位等)
- 小区门禁:很多小区的门禁规则明确禁止复制卡片,违规使用可能导致门禁权限被撤销
- 办公场所:公司门禁卡通常有严格管理规定,私自复制可能违反公司安全制度
- 加密≠安全:M1 卡的加密早已被破解,重要的门禁系统建议升级到更安全的 CPU 卡或国密算法方案
- 分享范围:M1 卡的 dump 文件(含 UID 和密钥)绝不分享给他人
参考资料
- 腾讯云社区:手机 NFC 模拟 M1 门禁卡、写 CUID 白卡的一些研究记录 → https://cloud.tencent.com/developer/article/2032581
- CSDN:华为手机 NFC 模拟加密的门禁卡详细教程 → https://blog.csdn.net/a1318321/article/details/105141863
- 知乎:由门禁卡来谈谈 IC/ID 复制卡的原理和知识 → https://zhuanlan.zhihu.com/p/654587508
- 我的博客:华为 Mate30 NFC 功能异常的解决办法 → https://zhupite.com/android/huawei-mate30-nfc.html
- NXP 官方:Mifare Classic 1K 产品规格 → https://www.nxp.com/products/identification-and-security/mifare-classic
文档信息
- 本文作者:zhupite
- 本文链接:https://zhupite.com/sec/nfc.html
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)