Proxmark3 Iceman Fork 在 macOS 上的 Homebrew 安装与编译指南 Proxmark3 Iceman Fork 在 macOS 上的 Homebrew 安装与编译指南【免费下载链接】proxmark3Iceman Fork - Proxmark3项目地址: https://gitcode.com/GitHub_Trending/pr/proxmark3本指南完整讲解 Iceman ForkProxmark3在 macOS 平台上的两种主流安装路径面向普通用户的一键式 Homebrew Tap 安装含 Blue Shark、generic 平台等编译变体以及面向开发者的 Homebrew 依赖 源码编译流程同时覆盖 Apple SiliconM1/M2/M3专属注意事项、bootloader 模式刷机按钮技巧与客户端启动方法。读完本文你将能够在一台 Intel 或 Apple Silicon 的 Mac 上独立完成 Proxmark3 的安装、升级、固件刷写与编译调试。本文对应的仓库文档为 macOS-Homebrew-Installation-Instructions.md与其配套的编译说明可参考 0_Compilation-Instructions.md。一、先决条件Xcode Command Line Tools 与 Homebrew在开始任何安装之前请确保 macOS 环境满足以下两个基础条件Xcode Command Line Tools如果尚未安装在终端中执行xcode-select --installHomebrew如果尚未安装先按照 Homebrew 官网指引完成安装本文不再赘述其安装过程。此外文档建议安装XQuartz某些图形相关组件运行时的依赖brew install xquartzmacOS Ventura Beta 用户Xcode 版本检测报错早期使用 macOS Ventura Xcode 14.0 的用户可能会遇到Xcode 14.0 已过时out-of-date的错误提示——即使你已经安装了最新的 Xcode Beta。该问题的官方修复步骤如下重新下载并安装最新版Xcode Beta 14 的 Command Line Tools在终端执行sudo xcode-select -s /Applications/Xcode-beta.app将命令行工具指向 Beta 版本重新进行 Homebrew 安装。如果以上步骤后问题依然存在文档提供了一种临时且不优雅的替代方案尝试将Xcode-beta.app重命名为Xcode.app注意如果你仍需要 Xcode 13.0 进行签名与 App Store 上传请将原来的Xcode.app重命名为Xcode-2.app重命名后继续 Homebrew 安装安装完成后务必将命名恢复原状。二、Apple SiliconM1 及后续专属注意事项Rosetta 2 与arm-none-eabi-gccIceman Fork 在 macOS 上编译固件依赖arm-none-eabi-gcc该工具链长期以预编译的 x86_64 二进制分发因此 Apple Silicon 机器需要安装 Rosetta 2 才能运行它。注意从 v4.19552 版本开始Apple Silicon 已被原生支持不再强制要求安装 Rosetta 2。如果你在安装/编译时看到如下报错bad CPU type in executable说明缺少 Rosetta 2请执行/usr/sbin/softwareupdate --install-rosetta架构一致性终端必须运行在 Apple 架构下Homebrew 已改变其 prefix 策略来区分原生 Apple Silicon 与 Intel 编译产物分别对应/opt/homebrew与/usr/local。仓库的Makefile已经尽力自动适配这一点但请注意你使用的终端或应用程序必须运行在 Activity Monitor 中所显示的 Apple 架构下因为所有子进程都会继承父进程的 Rosetta 2 环境。你可以用以下命令检查当前 shell 的架构uname -m最快的规避方式是不让整个终端跑在 Rosetta 2 中而是在 brew 命令前加arch -arm64前缀例如arch -arm64 brew install --HEAD --with-blueshark proxmark3跨架构 Python 链接错误如果在链接阶段出现类似下面的错误ld: warning: ignoring file /usr/local/Cellar/.../libpython3.9.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64 Undefined symbols for architecture arm64: _PyArg_UnpackTuple, referenced from: _SwigPyObject_own in pm3_pywrap.o ...说明构建环境试图跨架构链接 Python。解决办法是安装 arm64 版本的 Python并通过LDFLAGS告知链接器brew install pythonVERSION export LDFLAGS-L/opt/homebrew/Cellar/pythonVERSION/VERSION.MINORVERSION/Frameworks/Python.framework/Versions/VERSION/lib/ make其中VERSION与MINORVERSION需替换为你实际安装的 Python 版本号。另外仓库还提供了PYTHON3_PKGCONFIG变量来指定不同的 Python 3 包例如构建 Python 3.11 版本make -j PYTHON3_PKGCONFIGpython-3.11详见 0_Compilation-Instructions.md。编辑器建议如果你在 Apple Silicon Mac 上开发 Proxmark3Visual Studio Code 仍运行在 Rosetta 2 之下可以考虑改用支持 Apple Silicon 原生运行的Insiders 版本。三、方式一通过 Homebrew Tap 自动安装 Proxmark3 工具这是最省事的安装方式由社区提供proxmark3.rb打包脚本。完整步骤如下如未完成安装 Xcode Command Line Toolsxcode-select --install如未完成安装 Homebrew安装 XQuartzbrew install xquartz添加本仓库对应的 Homebrew Tapbrew tap RfidResearchGroup/proxmark3根据你的设备与需求选择安装变体# 稳定版推荐 brew install proxmark3 # 最新非稳定版从 GitHub 拉取最新源码上一个命令失败时使用 brew install --HEAD proxmark3 # 带 Blue Shark蓝牙支持稳定版 brew install --with-blueshark proxmark3 # 带 Blue Shark 支持最新非稳定版 brew install --HEAD --with-blueshark proxmark3 # 面向 generic非 RDV4设备稳定版 brew install --with-generic proxmark3 # 面向 generic非 RDV4设备最新非稳定版 brew install --HEAD --with-generic proxmark3--with-generic对应PLATFORMPM3GENERIC编译目标其含义详见 4_Advanced-compilation-parameters.md 中的 PLATFORM 章节默认平台是PM3RDV4Proxmark3 RDV4此外还支持PM3GENERIC、PM3ICOPYX、PM3ULTIMATE等目标。若你没有 RDV4 设备请务必选择--with-generic变体。升级 Homebrew Tap 公式如果你希望运行 Iceman Fork 的每日最新bleeding-edge版本可以强制 Homebrew 从源码仓库拉取最新源码后重新编译安装brew upgrade --fetch-HEAD proxmark3文档特别提醒此过程针对的是最新开发版本如果某个更新在 macOS 上尚不稳定升级可能导致构建失败该升级流程实测基于 macOS Mojave 10.14.4。四、刷写 BOOTROM 与 FULLIMAGEbootloader 模式按钮技巧进入 bootloader 模式刷机前需要让设备进入 bootloader 模式将 Proxmark3 从电脑上拔出按住设备上的按钮不放同时插入 USB 口松开按钮后四颗 LED 中应有两颗保持常亮此时已进入 bootloader 模式可以进行下一步如果松开按钮后两颗 LED 并未常亮说明你用的是老版本 bootloader请重新开始并在整个刷写过程中一直按住按钮。使用pm3-flash-all自动刷写原则上辅助脚本pm3-flash-all会自动探测串口直接执行即可pm3-flash-all从仓库中的脚本实现看pm3-flash-all本质上是pm3脚本在pm3-flash-all名称下的一个分支见 pm3-flash-all 与 pm3 脚本它会自动组合--port 检测到的端口 --flash --unlock-bootloader --image bootrom.elf --image fullimage.elf参数并调用proxmark3客户端其中bootrom.elf与fullimage.elf两个镜像文件名在脚本头部以BOOTIMAGE、FULLIMAGE变量定义。在 macOS 上端口检测逻辑由脚本中的get_pm3_list_macOS函数完成它通过ioreg扫描 Vendor Name 为proxmark.org的IOUSBHostDevice来定位拨号设备。端口探测失败时手动指定端口如果自动探测失败需要手动指定串口调用 flasherproxmark3 /dev/tty.usbmodemiceman1 --flash --unlock-bootloader \ --image /usr/local/share/proxmark3/firmware/bootrom.elf \ --image /usr/local/share/proxmark3/firmware/fullimage.elf视固件版本不同Proxmark3 也可能以/dev/tty.usbmodem881这样的名字出现。镜像文件默认位于/usr/local/share/proxmark3/firmware/下该路径由 Makefile.defs 中的PREFIX/usr/local与INSTALLFWRELPATHshare/proxmark3/firmware组合确定。关于固件与客户端版本不匹配的警告当你自己编译了客户端、却使用其他来源的固件镜像时flasher 会警告 full image 与客户端源码不匹配 并默认停止刷写这是为了避免固件与客户端版本不一致带来的风险。如果你明确知道自己正在做什么可以加--force参数强制继续pm3-flash-all --force五、运行客户端安装或编译完成后启动客户端的最简方式是pm3pm3是proxmark3客户端的一个包装脚本核心能力是自动探测 Proxmark3 串口并等待设备接入。根据 pm3 脚本源码它还支持以下实用选项pm3 --list列出所有检测到的端口并编号pm3 -n N连接第 N 个 Proxmark3编号来自--list输出pm3 -p /dev/tty.usbmodemiceman1跳过探测直接指定端口pm3 -o/pm3 --offline不探测端口直接透传给客户端pm3 -c lf search -i进入客户端后执行一条命令并停留交互界面。如果端口无法被正确探测可以手动指定串口proxmark3 /dev/tty.usbmodemiceman1对应 Linux 下的proxmark3 /dev/ttyACM0macOS 下端口名即/dev/tty.usbmodemiceman1。六、方式二开发者安装Homebrew 依赖 源码编译如果需要在 macOS 上自行克隆并编译整个仓库与 Linux、Windows 上完全一致的环境按以下步骤操作。安装编译依赖brew install readline qt gd pkgconfig coreutils openssl zlib brew install RfidResearchGroup/proxmark3/arm-none-eabi-gcc如果客户端不需要解压压缩后的 Google Smart Tap 载荷可以跳过zlib的安装readline、qt用于客户端交互界面与图形组件coreutils提供 macOS 缺失的 GNU 工具如greadlinkopenssl用于加密相关功能arm-none-eabi-gcc是交叉编译固件所需的 ARM 工具链。可选安装 Makefile 相关的辅助依赖brew install recode brew install astyle克隆 Iceman 仓库并编译git clone https://github.com/RfidResearchGroup/proxmark3.git cd proxmark3进入仓库后按照编译说明执行make clean make -j如果你没有 Proxmark3 RDV4 设备请务必先阅读 4_Advanced-compilation-parameters.md为你的平台如PM3GENERIC调整编译参数在 macOS 上刷机时建议手动进入 bootloader 模式见上文按钮技巧否则可能遇到刷写错误可选安装步骤sudo make install会把可执行文件安装到/usr/local/bin、固件与资源安装到/usr/local/share/proxmark3路径由 Makefile.defs 中的PREFIX变量控制。如果跳过安装则应使用./pm3或client/proxmark3这样的仓库内路径来运行。免 sudo 的别名方案可选如果你希望在不执行make install的情况下也能直接敲pm3、pm3-flash等命令可以假设使用bashshell在~/.bash_profile中为仓库内的脚本添加别名export BASHRC~/.bash_profile export PM3LOCAL_PATH$(greadlink -f .) touch $BASHRC echo alias pm3$PM3LOCAL_PATH/pm3 $BASHRC echo alias pm3-flash$PM3LOCAL_PATH/pm3-flash $BASHRC echo alias pm3-flash-all$PM3LOCAL_PATH/pm3-flash-all $BASHRC echo alias pm3-flash-bootrom$PM3LOCAL_PATH/pm3-flash-bootrom $BASHRC echo alias pm3-flash-fullimage$PM3LOCAL_PATH/pm3-flash-fullimage $BASHRC然后让当前终端立即生效source ~/.bash_profile之后每次新开终端都会自动加载这些别名依赖coreutils提供的greadlink获取仓库绝对路径。七、下一步验证与使用安装并刷写完固件后建议依次阅读以下文档完成功能验证与日常使用Validating proxmark client functionality验证客户端与设备通信是否正常First Use and Verification首次使用与配置含 RDV4 SPI Flash 结构初始化如script run init_rdv4Commands Features命令与功能总览若编译或刷机遇到问题可查阅 Troubleshooting.md。小结在 macOS 上使用 Proxmark3 Iceman Fork核心是三条主线用 Homebrew Tap 一键安装并选择合适的编译变体stable/HEAD/blueshark/generic、用按钮技巧进入 bootloader 模式后通过pm3-flash-all刷写 bootrom 与 fullimage、以及面向开发者通过 Homebrew 安装依赖后make clean make -j自行编译。Apple Silicon 用户需要额外留意 Rosetta 2、终端架构一致性以及跨架构 Python 链接这三个高频坑点。结合仓库内的 pm3 辅助脚本与 4_Advanced-compilation-parameters.md 中的平台参数说明即可在 macOS 上搭建一套完整、可升级、可自行定制的 Proxmark3 开发与使用环境。【免费下载链接】proxmark3Iceman Fork - Proxmark3项目地址: https://gitcode.com/GitHub_Trending/pr/proxmark3创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考