最新Proxmark3 命令行指令大全和完全实战手册

📖 最新Proxmark3 命令行指令大全和完全实战手册

📌 前言

本文档分为两部分内容:

  1. Proxmark3 命令行指令大全(按功能分类,带详细使用案例)
  2. 实战问题解决记录(基于实际操作中遇到的各种问题及解决方法)

适用固件版本:Iceman 2026-02-16 及更新版本

Proxmark3

第一部分:基础操作与环境配置

一、基础操作类

命令 说明 使用案例
help 显示所有可用命令 场景:刚进入命令行,想看看有哪些命令可用。
输入help
输出:显示所有命令分类列表
hf 进入高频命令组 场景:想操作高频卡(如Mifare),先进入高频模式。
输入hf
输出:显示所有高频相关命令
lf 进入低频命令组 场景:想操作低频卡(如EM4100),进入低频模式。
输入lf
输出:显示所有低频相关命令
hw 进入硬件命令组 场景:想查看或配置硬件,进入硬件模式。
输入hw
输出:显示所有硬件相关命令
data 数据分析与图形窗口 场景:想分析捕获的波形。
输入data plot
输出:弹出图形窗口显示采样数据
quit / exit 退出客户端 场景:操作完成,想退出PM3客户端。
输入quit
输出:返回到系统命令行
clear 清屏 场景:屏幕上信息太多,想清空重新开始。
输入clear
输出:屏幕清空,只剩提示符
--help 查看具体命令的帮助 场景:想查看hf mf autopwn的具体用法。
输入hf mf autopwn --help
输出:显示该命令的所有参数说明

二、硬件与调谐

命令 说明 使用案例
hw version 显示固件版本 场景:想知道当前固件是什么版本,是否最新。
输入hw version
输出:显示bootrom、os、FPGA版本号和日期
hw status 显示设备状态 场景:设备工作不稳定,想查看各项状态是否正常。
输入hw status
输出:显示内存使用、天线状态、配置参数等
hw tune 天线调谐 场景:读卡距离变短,想检查天线输出是否正常。
输入hw tune
输出:显示LF和HF天线电压,正常值应>20V
hw reset 重启PM3 场景:设备卡死无响应,想软重启。
输入hw reset
输出:设备重启,重新连接

第二部分:高频卡(HF)操作指南

三、高频(HF)通用

命令 说明 使用案例
hf search 搜索高频卡片 场景:放上一张未知卡,想知道它是什么类型。
输入hf search
输出:自动识别卡片类型(如MIFARE Classic 1K)
hf tune 高频天线调谐 场景:只在高频模式下想专门调谐HF天线。
输入hf tune
输出:显示HF天线电压

四、ISO14443A(MIFARE)类

4.1 基础操作

命令 说明 使用案例
hf 14a info 获取ISO14443A卡片信息 场景:放上一张Mifare卡,想获取它的UID和ATQA、SAK。
输入hf 14a info
输出:显示UID: 04 12 34 56 78 90 AB CD,ATQA: 0004,SAK: 08
hf 14a reader 模拟读卡器读取UID 场景:想快速读取卡片UID,不做深入分析。
输入hf 14a reader
输出:显示UID: 041234567890abcd
hf 14a sim 模拟标签 场景:想模拟一张卡测试读卡器。
输入hf 14a sim 12345678
输出:开始模拟UID为12345678的标签
hf 14a snoop 嗅探通信 场景:想捕获读卡器和卡片之间的通信数据。
输入hf 14a snoop
输出:等待通信,捕获后显示交互数据
hf 14a raw 发送原始指令 场景:想发送自定义APDU指令测试卡片。
输入hf 14a raw -c 60 00
输出:返回卡片的原始响应数据

4.2 MIFARE Classic 专用(重点)

命令 说明 使用案例
hf mf rdbl 读取块 场景:已知扇区4块16用密钥A全F可读,想读取数据。
输入hf mf rdbl --blk 16 -a --key FFFFFFFFFFFF
输出data:aa 55 20 08 31 14 24 58 00 00 00 00 00 00 00 00
hf mf wrbl 写入块 场景:想用B密码修复扇区4的尾部块19。
输入hf mf wrbl --blk 19 -b --key FFFFFFFFFFFF --data FFFFFFFFFFFFFF078069FFFFFFFFFFFF
输出[+] Write ( ok )
hf mf rdsc 读取扇区 场景:想一次性读取扇区4的所有块(16-19)。
输入hf mf rdsc 4 A FFFFFFFFFFFF
输出:显示块16、17、18、19的数据
hf mf dump 导出整卡数据 场景:想把整张卡备份下来,防止丢失。
输入hf mf dump
输出:生成hf-mf-353C2AA6-dump.binhf-mf-353C2AA6-keys.bin
hf mf restore 恢复数据到卡 场景:之前备份过卡,现在想恢复数据到新卡。
输入hf mf restore -f hf-mf-353C2AA6-dump.bin
输出:逐块写入,完成后提示成功
hf mf chk 检测默认密钥 场景:拿到一张新卡,想知道哪些扇区用的是默认密钥。
输入hf mf chk *1 ? d default_keys.dic
输出:列出找到的所有密钥和对应的扇区

4.3 密钥攻击

命令 说明 使用案例
hf mf autopwn 自动攻击(推荐) 场景:已知扇区4的B密码是全F,想破解所有扇区的A密码。
输入hf mf autopwn -s 4 -b -k FFFFFFFFFFFF
输出:列出所有扇区的密钥,扇区4的A密码显示在表格中
hf mf nested 嵌套攻击 场景:autopwn失败,想尝试经典嵌套攻击。
输入hf mf nested 1 4 B FFFFFFFFFFFF
输出:攻击过程显示,最终列出所有密钥
hf mf hardnested 硬嵌套攻击 场景:标准嵌套攻击失败,卡片可能是较新的EV1版本。
输入hf mf hardnested --blk 16 -b --key FFFFFFFFFFFF --tblk 16 --ta
输出:显示攻击进度,最终给出目标A密码
hf mf staticnested 静态嵌套攻击 场景:遇到复旦卡(Static nonce detected)时使用。
输入hf mf staticnested --1k --blk 19 -b --key FFFFFFFFFFFF
输出:尝试破解静态随机数卡片的密钥
hf mf mifare DarkSide攻击 场景:没有任何已知密钥,想尝试破解。
输入hf mf mifare
输出:利用卡片认证漏洞尝试获取密钥

4.4 魔术卡(UID卡)操作

命令 说明 使用案例
hf mf csetuid 设置UID 场景:想把魔术卡的UID改成和原卡一样。
输入hf mf csetuid 353C2AA6
输出:UID修改成功
hf mf csetblk 写入块(魔术卡专用) 场景:想直接写入块0(包括UID部分)。
输入hf mf csetblk 0 353C2AA6A6080400
输出:写入成功
hf mf cgetblk 读取块(魔术卡专用) 场景:想读取魔术卡的块0确认UID。
输入hf mf cgetblk 0
输出353C2AA6A6080400
hf mf cload 写入dump到魔术卡 场景:有原卡的dump文件,想一次性克隆到魔术卡。
输入hf mf cload -f hf-mf-353C2AA6-dump.bin
输出:逐块写入,完成后提示成功

4.5 仿真内存操作

命令 说明 使用案例
hf mf eload 加载dump到仿真内存 场景:想把备份的卡数据加载到内存,准备模拟。
输入hf mf eload 353C2AA6
输出:加载成功
hf mf esave 保存仿真内存到文件 场景:模拟前想把当前内存状态保存下来。
输入hf mf esave
输出:生成仿真内存文件
hf mf eget 获取仿真内存块 场景:想查看仿真内存中块0的内容。
输入hf mf eget 0
输出:显示块0的数据
hf mf eset 设置仿真内存块 场景:想修改仿真内存中块16的内容。
输入hf mf eset 16 000102030405060708090A0B0C0D0E0F
输出:设置成功
hf mf sim 模拟卡片 场景:想模拟一张卡测试读卡器。
输入hf mf sim u 353c2aa6
输出:开始模拟UID为353c2aa6的卡片

第三部分:低频卡(LF)操作指南

五、低频(LF)类

5.1 通用

命令 说明 使用案例
lf search 搜索低频卡片 场景:放上一张未知低频卡,想识别类型。
输入lf search
输出:自动识别为HID Prox卡,显示卡号
lf search -u 搜索未知低频卡 场景:标准搜索找不到,强制搜索未知调制方式。
输入lf search -u
输出:显示解调后的比特流,提示可能的调制方式
lf read 读取低频ID 场景:想读取低频卡的原始ID。
输入lf read
输出:显示读取到的低频信号数据
lf sim 模拟低频标签 场景:想模拟一张低频卡测试读卡器。
输入lf sim
输出:开始模拟

5.2 HID Prox

命令 说明 使用案例
lf hid read 读取HID卡 场景:放上一张HID卡,想读取卡号。
输入lf hid read
输出:Facility Code: 2006,Card Number: 12345
lf hid demod 解调HID数据 场景:已捕获HID信号,想解调出卡号。
输入lf hid demod
输出:显示解调后的卡号
lf hid sim 模拟HID卡 场景:已知Facility Code 2006,卡号12345,想模拟。
输入lf hid sim 200670012d
输出:开始模拟该HID卡
lf hid clone 克隆到T55xx 场景:想复制一张HID卡到T55xx可写卡。
输入lf hid clone 200670012d
输出:写入成功

5.3 T55xx 可写卡

命令 说明 使用案例
lf t55xx detect 检测T55xx卡 场景:放上一张空白T55xx卡,想确认是否可写。
输入lf t55xx detect
输出:检测到T55xx卡,显示配置信息
lf t55xx dump 读取全部数据 场景:想查看T55xx卡内部所有数据。
输入lf t55xx dump
输出:显示所有配置块和数据块
lf t55xx wr 写入块 场景:想向T55xx的块0写入配置数据。
输入lf t55xx wr b 0 d 00081040
输出:写入成功
lf t55xx config 设置调制方式 场景:想配置T55xx的调制方式为FSK。
输入lf t55xx config FSK
输出:配置成功
lf t55xx wipe 擦除并重置 场景:T55xx卡数据混乱,想完全清空。
输入lf t55xx wipe
输出:卡片重置为出厂状态

5.4 EM410x / Indala

命令 说明 使用案例
lf em410x read 读取EM410x 场景:放上一张EM4100卡,想读取ID。
输入lf em410x read
输出:ID: 1A2B3C4D5E
lf em410x sim 模拟EM410x 场景:已知ID为1234567890,想模拟测试。
输入lf em410x sim 1234567890
输出:开始模拟
lf em410x clone 克隆到T55xx 场景:想把EM410x ID写入T55xx卡。
输入lf em410x clone --id 7500573615
输出Tag T55x7 written with 0xffbd40029e660d42
lf indala read 读取Indala 场景:放上一张Indala卡,想读取ID。
输入lf indala read
输出:ID: a0000000c2c436c1
lf indala sim 模拟Indala 场景:已知Indala ID,想模拟测试。
输入lf indala sim a0000000c2c436c1
输出:开始模拟

第四部分:数据分析与脚本

六、数据分析

命令 说明 使用案例
data plot 显示图形窗口 场景:刚捕获了一段信号,想用图形查看波形。
输入data plot
输出:弹出图形窗口显示采样数据
data save 保存采样数据 场景:捕获到一段有趣的信号,想保存下来。
输入data save captured_signal.pm3
输出:数据保存成功
data load 加载采样数据 场景:之前保存过信号,想重新分析。
输入data load captured_signal.pm3
输出:数据加载成功,可用data plot查看
data print 打印解调缓冲区 场景:想查看当前解调缓冲区中的比特流。
输入data print
输出:显示解调后的二进制数据
data rawdemod 解调数据 场景:已加载采样数据,想尝试自动解调。
输入data rawdemod ask manchester
输出:显示解调结果

七、脚本与自动化

命令 说明 使用案例
script list 列出可用脚本 场景:想知道有哪些现成的脚本可以用。
输入script list
输出:显示所有可用脚本名称
script run 运行脚本 场景:想把dump文件加载到仿真内存。
输入script run dumptoemul -i hf-mf-353C2AA6-dump.bin
输出:脚本执行成功
msleep 延时(毫秒) 场景:写脚本时,需要在两个操作之间等待。
输入msleep 500
输出:等待500毫秒

八、退出客户端

命令 说明 使用案例
quit 退出 场景:操作完成,想退出PM3客户端。
输入quit
输出:返回到系统命令行
exit 退出 场景:同上。
输入exit
输出:返回到系统命令行

第五部分:实战问题解决记录

九、高频卡常见问题

9.1 连接问题:Sending bytes to proxmark failed

现象

  • PM3 红灯常亮
  • 命令行报错 Sending bytes to proxmark failed
  • 设备管理器能识别 COM 口但无法通信

解决方法

  1. 强制重启:拔掉 USB 线,等待 10 秒,重新插入
  2. 进入 Bootloader 模式
    • 按住 PM3 侧面按钮
    • 保持按住同时插入 USB 线
    • 看到红灯闪烁后松开
  3. 重新刷写固件
    pm3-flash-bootrom
    pm3-flash-fullimage
    
    

9.2 命令格式错误:unexpected argument

现象

  • 输入命令后报错 unexpected argument
  • 提示 Try '... --help' for more information

原因:Iceman 新版固件命令格式与旧版不同,需要使用带参数名的格式

正确格式示例

# 正确:带参数名
hf mf wrbl --blk 39 -b --key F1F1F1F1F1F1 --data FFFFFFFFFFFFFF078069FFFFFFFFFFFF

# 错误:无参数名(旧版格式)
hf mf wrbl 39 B F1F1F1F1F1F1 FFFFFFFFFFFFFF078069FFFFFFFFFFFF

查看帮助:

hf mf wrbl --help

9.3 复旦卡静态随机数问题:Static nonce detected

现象

  • hf 14a info 显示 Static nonce: yes
  • 嵌套攻击报错 Static nonce detected. Quitting...
  • 后门密钥尝试失败

原因:卡片是复旦微电子 FM11RF08S 芯片,具有静态随机数防破解机制

尝试过的解决方案

  1. 后门密钥测试

    hf mf rdbl --blk 0 -a --key A396EFA4E24F
    hf mf rdbl --blk 0 -a --key A31667A8CEC1
    结果:Auth error
    
  2. 静态嵌套攻击

    hf mf staticnested --1k --blk 19 -b --key FFFFFFFFFFFF
    结果:部分成功,扇区4的B密码有效
    
  3. 自动攻击

    hf mf autopwn
    结果:成功破解大部分扇区密钥,生成完整dump文件
    

9.4 格式化卡片:恢复默认状态

目标:将加密扇区恢复为默认值(密钥全F,数据全0)

已知密钥情况(来自 hf mf autopwn 结果):

  • 扇区1-3、10-15:A/B 密钥均为 FFFFFFFFFFFF
  • 扇区4:B 密钥为 FFFFFFFFFFFF(A密钥未知)
  • 扇区0:A/B 密钥均未知
  • 扇区5-9:所有密钥未知

操作步骤

  1. 备份当前数据

    hf mf dump
    
  2. 恢复已知密钥扇区(以扇区9块39为例):

    hf mf wrbl --blk 39 -b --key F1F1F1F1F1F1 --data FFFFFFFFFFFFFF078069FFFFFFFFFFFF
    
  3. 清空数据块

    hf mf wrbl --blk 16 -a --key FFFFFFFFFFFF --data 00000000000000000000000000000000
    
  4. 验证写入结果

    hf mf rdbl --blk 39 -a --key FFFFFFFFFFFF
    

9.5 写入成功但数据未改变

现象

  • 写入命令返回 [+] Write ( ok )
  • 再次读取发现数据还是原来的

原因

  • 扇区尾部控制位可能被设置为禁止写入
  • 卡片可能已永久锁定

解决方法

  1. 立即读取验证
    hf mf rdbl --blk 39 -b --key F1F1F1F1F1F1
    
  2. 检查访问控制位
    hf mf rdbl --blk 39 -a --key FFFFFFFFFFFF
    # 查看返回数据中的访问控制位是否正确
    

十、低频卡常见问题

10.1 未知卡检测:lf search -u 输出 PSK1 信号

现象

 [-] No known 125/134 kHz tags found!
 [+] PSK1 demoded bitstream
 [=] Possible unknown PSK1 Modulated Tag found above!

原因:卡片使用 PSK(相移键控)调制,不是常见的 ASK 或 FSK 卡

解决方法

  1. 尝试不同解调方式

    data rawdemod psk2
    data rawdemod fsk
    data rawdemod ask
    
  2. 查看原始波形

    lf read -v
    data plot
    
  3. 保存原始数据供后续分析

    data save unknown_card.pm3
    

10.2 EM410x 卡读取与克隆

成功读取EM410x卡

lf search -u
# 输出:EM 410x ID 7500573615

克隆到T55x7卡

lf em410x clone --id 7500573615
输出:Tag T55x7 written with 0xffbd40029e660d42

验证克隆结果

lf em410x read
# 应返回相同的ID:7500573615

10.3 两张不同低频卡的处理

场景:两次 lf search -u 得到不同结果

卡片 识别结果 类型
第一张 EM 410x ID 7500573615 标准EM410x卡
第二张 PSK1 demoded bitstream 未知PSK调制卡

解决方法

  1. 第一张卡:直接用 lf em410x read 读取
  2. 第二张卡:先用 data rawdemod 尝试不同解调,再用 lf t55xx detect 检测芯片

第六部分:文件格式与备份

十一、文件说明

执行 hf mf dump 后生成的文件:

文件后缀 格式 说明
.bin 二进制 卡片数据的原始二进制格式
.eml 文本 可读的十六进制文本格式
.json JSON 包含元数据的JSON格式
.keys 二进制 密钥文件

十二、数据备份建议

  1. 操作前先备份
    hf mf dump

  2. 重要数据多重保存

    • 保存 .bin 文件供PM3恢复使用
    • 保存 .eml 文件供手动查看和编辑
    • 截图保存关键信息
  3. 低频信号备份
    data save lf_capture_日期.pm3


📝 常用命令速查表

你想做什么 输入命令
破解A密码(已知B) hf mf autopwn -s 4 -b -k FFFFFFFFFFFF
读取块16 hf mf rdbl --blk 16 -a --key FFFFFFFFFFFF
写入块19 hf mf wrbl --blk 19 -b --key FFFFFFFFFFFF --data FFFFFFFFFFFFFF078069FFFFFFFFFFFF
整卡备份 hf mf dump
检测默认密钥 hf mf chk *1 ? d
设置魔术卡UID hf mf csetuid 12345678
模拟卡片 hf mf sim u 353c2aa6
读取EM410x lf em410x read
克隆EM410x lf em410x clone --id 7500573615
检测T55xx lf t55xx detect
检查天线 hw tune
查看固件版本 hw version
识别未知高频卡 hf search
识别未知低频卡 lf search -u
查看波形 data plot
保存采样数据 data save filename.pm3
加载采样数据 data load filename.pm3

⚠️ 常见错误及解决方法速查

错误信息 可能原因 解决方法
Sending bytes to proxmark failed 通信断开 重新插拔 USB,进入 Bootloader 模式
unexpected argument 命令格式错误 用 --help 查看正确格式,使用带参数名格式
Auth error 密钥错误 换用已知正确的密钥或类型(A/B)
Static nonce detected 复旦卡防破解 尝试后门密钥或 hf mf staticnested
Can't authenticate to block 密钥或块号错误 确认块号和密钥类型(A/B)
Error - can't find script 脚本不存在 更新固件或手动下载脚本
No known tags found 未知卡类型 用 -u 参数强制搜索,或手动解调
Write ( failed ) 写入失败 检查密钥是否正确,卡片是否可写
Command execute timeout 设备无响应 重新插拔USB,重启客户端
invalid option 参数名错误 查看 --help 确认正确的参数名
Wrong key 密钥不正确 确认使用的密钥是否正确(A/B类型)

💡 最终使用建议

  1. 先看帮助:任何不确定的命令先用 --help 查看格式
  2. 先备份:修改卡片前先用 dump 备份原数据
  3. 先验证:写入后用 rdbl 验证结果
  4. 区分大小写:密钥和参数都是大写十六进制
  5. 注意格式:Iceman 固件要求带参数名(如 --blk、--key)
  6. 耐心尝试:复旦卡需要特殊方法处理,不要灰心
  7. 保存日志:重要操作保存屏幕输出,方便回溯
  8. 多交流:遇到难题可以去 Proxmark3 论坛或社群求助
  9. 记录成功案例:每次成功操作记录下来,形成自己的经验库
  10. 循序渐进:从简单的读取开始,逐步尝试写入和破解

祝使用愉快!