Proxmark3更新USB cdc模式固件

来自RadioWar Wiki
跳转至: 导航搜索

proxmark3的官方仓库中从r630开始添加USB cdc模式分支,至r657开始USB cdc模式分支合并入trunk。也就是说,现在可以从官方仓库直接取出的最新非USB cdc版本为r629,并且r629之后的固件都是cdc模式的。


更新固件注意事项

如安装CDC版本固件驱动时提示inf驱动错误的话,那就是代表你缺少了mdmcpq.inf和usbser.sys文件,点击[此连接下载Win7依赖文件],mdmcpg.inf请放在系统盘:\\windows\inf,而usbser.sys请放在系统盘:\\windows\system32\drivers目录下


更新bootrom部分固件

通过JTAG接口更新bootrom部分固件

详见JLINK刷写Proxmark3固件


通过client/flasher程序更新bootrom部分固件

  • 由于r629之后的flasher程序均采用cdc模式与proxmark3通信,必须采用r629或之前版本的flasher程序更新cdc模式固件的bootrom。

详见Proxmark3基于libusb驱动下的固件编译


一、如果固件版本已经高于r672,请直接运行 固件升级.bat 按提示继续就OK了。


二、如果是从r672之前的版本升级到当前的版本,并且bootrom版本低于r672,请按以下步骤操作,以防PM3出错。


具体操作:

(注:图片是基于834固件升级截图)

1、cmd切换到win32目录,先刷新osimage。输入命令:flasher_old.exe ..\firmware_win\osimage.elf

Proxmark3-cdc-driver-1.png

Proxmark3-cdc-driver-2.png

2、打开设备管理器,找到一个多出来的未知设备,然后更新新版的驱动。(驱动在固件包的Drivers目录的new目录)

Proxmark3-cdc-driver-3.png

Proxmark3-cdc-driver-4.png

Proxmark3-cdc-driver-5.png

Proxmark3-cdc-driver-6.png

Proxmark3-cdc-driver-7.png

Proxmark3-cdc-driver-8.png

3、安装好驱动之后,设备管理的端口下面可以看到Proxmark3(COM*)(*号代表随机数)

Proxmark3-cdc-driver-9.png

4、cmd切换到win32目录,继续刷新bootrom。输入命令:flasher_old.exe -b ..\firmware_win\bootrom.elf 【切记不要急着回车,先输入好命令备用】

5、拔掉PM3连接电脑的USB(断开PM3),然后按住PM3上面的黑色按钮(一直按着按钮),插入USB(此时进入底层刷写模式),然后按下回车,执行上面的命令。

Proxmark3-cdc-driver-10.png

6、cmd切换到win32目录,继续刷新fullimage。输入命令:flasher.exe com3 ..\firmware_win\fullimage.elf 【这里的com3只是个例子,具体看设备管理的端口下面Proxmark3(COM*)】

Proxmark3-cdc-driver-12.png

7、cmd切换到win32目录,继续刷新fpgaimage。输入命令:flasher.exe com3 -b ..\firmware_win\fpgaimage.elf 【这里的com3只是个例子,具体看设备管理的端口下面Proxmark3(COM*)】

Proxmark3-cdc-driver-13.png

  以上操作顺利完成,PM3已经升级到cdc的最新固件了,Enjoy it !


配置cdc模式驱动

  • 以下操作均以Archlinux x64 (20130728) 为例

将以下内容保存为/etc/udev/rules.d/26-proxmark-cdc.rules

 SUBSYSTEM=="tty", ATTRS{idVendor}=="2d2d", ATTRS{idProduct}=="504d", MODE="0660", GROUP="uucp", SYMLINK+="proxmark"

然后将当前用户加入uucp组,重启计算机。


进入bootloader更新其他部分固件

断开proxmark3与计算机的连接,按住按钮重新连接proxmark3(按钮不要放),此时进入proxmark3的bootloader。

可以通过ls /dev/proxmark查看是否增加了一个名为/dev/proxmark的设备。

使用cdc版本的client/flasher程序更新固件

 flasher /dev/proxmark foo/bar/fullimage.elf

更新完毕之后可以放开按钮。

至此,可以通过client/proxmark3 /dev/proxmark来连接proxmark3了。