FlipperZero NFC设备文件格式详解

FlipperZero NFC设备文件格式详解

flipperzero-firmware Flipper Zero firmware source code flipperzero-firmware 项目地址: https://gitcode.com/gh_mirrors/fl/flipperzero-firmware

概述

FlipperZero作为一款多功能安全工具,其NFC功能支持多种卡片类型的读写操作。本文将详细介绍FlipperZero固件中使用的NFC设备文件格式,帮助开发者理解如何存储和解析不同NFC设备的数据。

通用文件格式结构

所有NFC设备文件都遵循一个基本结构:

Filetype: Flipper NFC device
Version: 4
Device type: [设备类型]
UID: [UID值]
-------------------------
(设备特定数据)

其中:

  • Version字段表示文件格式版本,目前最新为4
  • Device type可以是ISO14443-3A、ISO14443-3B、ISO14443-4A、NTAG/Ultralight、Mifare Classic或Mifare DESFire
  • UID是设备的唯一标识符,长度通常为4或7字节

各类型NFC设备文件详解

1. ISO14443-3A设备

用于存储符合ISO14443-3A标准的非接触式卡片数据。

特点:

  • UID长度必须为4或7字节
  • 包含ATQA(2字节)和SAK(1字节)字段

示例:

Device type: ISO14443-3A
UID: 34 19 6D 41 14 56 E6
ATQA: 00 44
SAK: 00

2. ISO14443-3B设备

用于存储符合ISO14443-3B标准的非接触式卡片数据。

特点:

  • UID长度固定为4字节
  • 包含应用数据(4字节)和协议信息(3字节)

示例:

Device type: ISO14443-3B
UID: 30 1D B3 28
Application data: 00 12 34 FF
Protocol info: 11 81 E1

3. ISO14443-4A设备

在ISO14443-3A基础上增加了ATS(Answer to Select)数据。

特点:

  • ATS长度至少5字节
  • 其他字段与ISO14443-3A相同

示例:

Device type: ISO14443-4A
UID: 04 48 6A 32 33 58 80
ATQA: 03 44
SAK: 20
ATS: 06 75 77 81 02 80

4. NTAG/Ultralight设备

用于存储NTAG和Mifare Ultralight系列卡片数据。

特点:

  • 存储卡片类型(NTAG203/213/215/216等)
  • 包含签名数据(32字节)
  • 记录所有页(page)数据
  • 支持计数器(3个)和撕裂标志

示例片段:

Device type: NTAG/Ultralight
NTAG/Ultralight type: NTAG216
Signature: 1B 84 EB 70 BD 4C BD 1B...
Pages total: 231
Page 0: 04 85 92 9B
Page 1: 8A A0 61 81
...

5. Mifare Classic设备

用于存储Mifare Classic(1K/4K)卡片数据。

特点:

  • 指定卡片类型(1K或4K)
  • 以块(block)为单位存储数据
  • 未知数据用'??'表示
  • 每个块16字节

示例片段:

Device type: Mifare Classic
Mifare Classic type: 4K
Block 0: BA E2 7C 9D B9 18 02 00...
Block 1: 00 00 00 00 00 00 00 00...
...
Block 255: FF FF FF FF FF FF FF 07...

6. Mifare DESFire设备

用于存储Mifare DESFire卡片数据。

特点:

  • 存储PICC版本信息
  • 记录应用数量和配置
  • 按应用和文件组织数据
  • 包含详细的访问权限信息

示例片段:

Device type: Mifare DESFire
PICC Version: 04 01 01 12 00 1A 05...
Application Count: 1
Application IDs: 56 34 12
Application 563412 File IDs: 01
Application 563412 File 1: 13 37 00 00...

辅助文件格式

1. Mifare Classic密钥字典

包含常见Mifare Classic密钥的文本文件。

特点:

  • 每行一个密钥(12位十六进制)
  • 以#开头的行视为注释
  • 常用于测试Mifare Classic卡片

示例:

FFFFFFFFFFF
A0A1A2A3A4A5
D3F7D3F7D3F7

2. EMV资源文件

存储EMV相关编码对应关系。

特点:

  • 包含货币代码、国家代码等
  • 格式为"代码: 名称"
  • 用于解析支付卡信息

示例:

0997: USN
0994: XSU
0990: CLF

版本变更说明

文件格式经历了多次迭代:

  1. 初始版本(已弃用)
  2. 使用LSB格式存储ATQA(如4400而非0044)
  3. 改用MSB格式存储ATQA(当前标准)
  4. 在ISO14443-3A设备中使用UID替代设备类型

实际应用建议

  1. 数据完整性检查:解析文件时应验证UID长度、各字段长度是否符合规范
  2. 版本兼容性:处理旧版本文件时需注意ATQA格式差异
  3. 安全存储:包含重要数据的文件应加密存储
  4. 性能优化:对于大容量卡片(如Mifare Classic 4K),考虑按需加载数据

通过理解这些文件格式,开发者可以更好地利用FlipperZero进行NFC相关应用的开发和数据分析。

flipperzero-firmware Flipper Zero firmware source code flipperzero-firmware 项目地址: https://gitcode.com/gh_mirrors/fl/flipperzero-firmware

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

支然苹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值