FEATURED · 精选文章

Proxmark3 命令与特性实战指南:交互式帮助、常用命令与 Hardnested 表管理

发布时间 / 2026/9/17 14:04:14
来源 / 创域科博编辑部
栏目 / 资讯中心
Proxmark3 命令与特性实战指南:交互式帮助、常用命令与 Hardnested 表管理 Proxmark3 命令与特性实战指南交互式帮助、常用命令与 Hardnested 表管理【免费下载链接】proxmark3Iceman Fork - Proxmark3项目地址: https://gitcode.com/GitHub_Trending/pr/proxmark3本文是 Proxmark3Iceman Fork使用手册系列的第三篇围绕 3_Commands-and-Features.md 展开系统讲解客户端pm3 client的交互式帮助体系、Tab 自动补全、LF/HF 常用探测命令以及 MIFARE Classic 硬嵌套Hardnested攻击预计算表的压缩管理与取舍方案。读完本文你将能够熟练在 pm3 客户端中快速检索命令、完成最基础的标签探测并根据磁盘空间与运算速度需求灵活调整 hardnested 表的存储形态。前置阅读在深入命令之前建议先按顺序完成前三篇基础文档确保环境可用、固件与客户端正常通信编译安装说明校验 proxmark 客户端功能首次使用与验证只有客户端能正常连接设备并进入[usb] pm3 --交互提示符下文所有命令才有意义。获取交互式帮助pm3 客户端内置了多层次的帮助系统从全局到具体命令逐级深入全局帮助直接输入help列出所有顶层命令组如hf、lf、data、trace、script等及其用途。子命令帮助输入命令组名加help例如hf mf help即可查看hf mf下所有子命令mifare 系列攻击、读写、模拟等的清单。单条命令帮助许多命令支持-h/--help参数直接输出该命令的完整参数说明与用法示例。Tab 自动补全Proxmark3 客户端还支持在命令和文件名两个维度上的 Tab 自动补全体验与普通 Shell 类似。例如输入hf mf atab客户端会列出所有以a开头的可用子命令如autopwn、auth4等供你选择。这一特性的实现可以从源码中得到印证pm3line_vocabulary.c 中明确注释道行编辑器自动补全词汇表auto complete vocabulary在运行时从实时命令树构建因此它永远不会与help展示的内容脱节built at runtime from the live command tree so it can never drift from what help shows。词汇表采用动态扩容的结构初始容量 1024 条见VOCAB_INITIAL_CAPACITY并通过递归遍历命令表walkCommandsRecursive逐个收集叶子命令名脚本文件还会补全为script run file的形式。这意味着新增或删除命令后无需任何额外维护补全列表会自动跟随命令树更新。常用命令快速上手以下是文档推荐的一组入门命令覆盖 LF低频与 HF高频两大频段的基本操作[usb] pm3 -- lf [usb] pm3 -- hf输入lf或hf不带参数即可获得对应频段全部可用命令的概览。在命令表实现中hf组注册了包括search、14a、14b、15、mf、iclass、felica等在内的大量子命令参见 cmdhf.c 的命令表lf组则覆盖search、hid、t55xx、em410x、awid等参见 cmdlf.c。快速搜索已知标签[usb] pm3 -- lf search [usb] pm3 -- hf searchlf search会自动执行一系列低频标签的探测与解码流程尝试识别 EM4100、HID Prox、AWID、T55xx 等常见低频协议并直接输出解析结果hf search则依次尝试 ISO14443A、ISO14443B、ISO15693、iCLASS、FeliCa、MIFARE 等高频协议报告检测到的标签类型与基础信息。两条命令分别对应命令表中的CmdLFfindRead and Search for valid known tagcmdlf.c与CmdHFSearchSearch for known HF tagscmdhf.c非常适合作为现场勘察的第一步——先搜索、再针对识别出的协议深入操作。读取 ISO14443-A 标签信息[usb] pm3 -- hf 14a info对符合 ISO14443-A 标准的卡片如 MIFARE Classic、MIFARE Ultralight、NTAG、部分银行卡与门禁卡执行防冲突与选择流程读取 UID、ATQA、SAK 等关键参数并据此推断卡片类型与可能的协议族。这是对高频卡进行进一步攻击如hf mf系列前最常用的验明正身步骤。速查表一个很好的起点是仓库根目录下的 速查表Cheat sheet它按功能分类汇总了大量常用命令与典型组合可作为日常使用的随身参考此外还可配合本系列其他文档如 配置与验证交叉查阅。Hardnested 表管理压缩、空间与速度的权衡背景什么是 hardnested 表hf mf hardnested是 MIFARE Classic 的硬化嵌套攻击针对 hardened MIFARE Classic cards参见 cmdhfmf.c 的命令表注册。与传统的 nested 攻击不同hardnested 攻击会大量收集 nonce并借助预计算的 bitflip 状态表快速收缩密钥空间。这些表存放在客户端可执行文件旁的资源目录中client/resources/hardnested_tables/仓库中该目录实际存放了数百个 LZ4 压缩的状态表文件命名格式为bitflip_奇偶位_bitflip 值_states.bin.lz4例如bitflip_0_001_states.bin.lz4、bitflip_1_388_states.bin.lz4。其中文件名第一部分0/1分别对应偶数态EVEN_STATE与奇数态ODD_STATE中间的三位十六进制数是 bitflip 属性值。客户端在初始化时会按RAW → LZ4 → BZ2的优先级自动查找这些文件。从 cmdhfmfhard.c 可以看到文件模板定义#define STATE_FILES_DIRECTORY hardnested_tables/ #define STATE_FILE_TEMPLATE_RAW bitflip_%d_%03 PRIx16 _states.bin #define STATE_FILE_TEMPLATE_LZ4 bitflip_%d_%03 PRIx16 _states.bin.lz4 #define STATE_FILE_TEMPLATE_BZ2 bitflip_%d_%03 PRIx16 _states.bin.bz2init_bitflip_bitarrays()cmdhfmfhard.c会先尝试打开未压缩的.bin找不到再尝试.lz4最后尝试.bz2——这就是文档中两种压缩格式都可以直接用的原因你无需修改任何配置只要把表文件以三种形态之一放在hardnested_tables/目录下即可客户端启动时会通过searchFile()在资源目录中自动探测并加载。解码阶段分别调用 LZ4 frame 解压LZ4F_decompress与 bunzip2 流解压BZ2_bzDecompressInit并按位图bitarray形式装载同时用IGNORE_BITFLIP_THRESHOLD0.9901阈值跳过近乎全有效态的冗余表。默认方案LZ4 压缩推荐Hardnested 表默认以LZ4格式分发这是文档给出的空间与解压速度的较好折中。原始未压缩数据总计约 704 MBLZ4 压缩后仅约 9 MB而解压速度最快作为相对基准 1x。极限省空间改用 BZip2如果你的环境对磁盘空间极其敏感例如嵌入式设备、极小分区、受限的 CI 环境可以把表重新压缩为BZip2删除 LZ4 文件cd client/resources/hardnested_tables lz4 -dm --rm *lz4 bzip2 *.bin逐条解释lz4 -dm --rm *lz4-d解压、-m多文件模式、--rm解压后删除源.lz4文件bzip2 *.bin把所有解压出的.bin再压缩为.bz2并删除原始.bin。文档特别提醒这样做会破坏 git 工作目录的完整性工作区中的文件与版本库中的 LZ4 形态不一致git status会显示大量变更/删除。但如果你连 80 MB 以上的.git目录都不想部署到目标环境说明本来就只打算拷贝资源文件而非源码那么这种破坏可以接受。极致速度预解压表如果你追求最快的攻击速度例如长时间批量破解场景可以提前把表全部解压为原始.bin避免每次运行时的解压开销cd client/resources/hardnested_tables lz4 -dkm *lz4-d解压、-kkeep保留源.lz4文件、-m多文件模式。保留.lz4文件的好处是任何时候想恢复 LZ4 形态节省空间只需rm *.bin删除解压产物即可无需重新从网络获取。三种形态对比压缩方式占用大小 (MB)相对速度(*)LZ491基准BZip22约慢 6.5x不压缩704约快 2.5x(*) 表中速度为相对概念实际数值取决于具体硬件与系统负载。直观结论从 2 MBBZip2到 704 MB裸数据磁盘占用相差约 350 倍而速度上解压最快的裸数据比 LZ4 快约 2.5 倍比 BZip2 快约 6.5 倍以上。日常使用推荐维持仓库默认的LZ4形态只有在空间告急或追求极限性能时才切换为 BZip2 / 裸数据。与攻击命令的配合表加载发生在hf mf hardnested攻击启动阶段即hf mf hardnested -r读取 nonce 文件后开始求解时。典型用法可参考 cmdhfmf.c 中内置的帮助示例hf mf hardnested --tblk 4 --ta # 适用于 MFC EV1自动利用已知 key 探测 hf mf hardnested --blk 0 -a -k FFFFFFFFFFFF --tblk 4 --ta hf mf hardnested --blk 0 -a -k FFFFFFFFFFFF --tblk 4 --ta -w # 采集 nonce 并写入文件 hf mf hardnested --blk 0 -a -k FFFFFFFFFFFF --tblk 4 --ta -f nonces.bin -w -s hf mf hardnested -r --tk a0a1a2a3a4a5 # 读取 nonces.bin 并指定已知目标 key 校验常用参数速览完整参数见命令-h帮助参数含义--blk n输入块号用于读取已知 key-a/-b输入 key 类型为 Key A / Key B-k hex已知的 12 位十六进制 key--tblk n目标块号要破解的块--ta/--tb目标 key 类型 A / B--tk hex已知目标 key用于在剩余密钥空间中快速校验-f fn指定 nonce 文件名默认hf-mf-UID-nonces.bin-r从文件读取 nonce 并立即开始攻击-w采集 nonce 与 UID 并写入文件-s慢速采集部分非标准卡片必需--iX手动指定 SIMD 指令集imMMX、isSSE2、iaAVX、i2AVX2、i5AVX512、ieNEON取决于编译选项缺省自动检测在 cmdhfmfhard.c 中可以看到客户端会在启动时自动探测 CPU 支持的 SIMD 指令集AVX512F / AVX2 / AVX / SSE2 / MMX / NEON并使用num_CPUs()数量的线程并行求解——配合预解压的裸表可以最大化利用多核与 SIMD 能力。小结帮助体系help→命令组 help→命令 -h/--help层层深入Tab 自动补全覆盖命令与文件名词汇表由命令树实时构建永不与help脱节。入门三板斧hf/lf看命令清单lf search/hf search做全协议盲搜hf 14a info深挖 ISO14443-A 卡片细节。Hardnested 表默认 LZ4约 9 MB兼顾空间与速度空间极度受限改用 BZip2约 2 MB慢约 6.5x追求极限速度提前解压为裸表约 704 MB快约 2.5x。客户端会在启动时自动按 RAW → LZ4 → BZ2 顺序查找加载三种形态切换无需改动任何配置。【免费下载链接】proxmark3Iceman Fork - Proxmark3项目地址: https://gitcode.com/GitHub_Trending/pr/proxmark3创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻