从Archer C5V4刷回原厂:一次水星MER1200G的TTL刷机逆向工程与固件分区解析

张开发
2026/4/19 14:35:29 15 分钟阅读

分享文章

从Archer C5V4刷回原厂:一次水星MER1200G的TTL刷机逆向工程与固件分区解析
路由器固件逆向工程从硬件拆解到分区重构实战当一台刷了第三方固件的路由器需要恢复原厂系统时大多数用户会选择官方提供的Web恢复工具。但如果你面对的是一台已经无法通过常规方式恢复的设备或者你想深入了解路由器固件的底层结构那么TTL串口刷机将成为你的终极武器。这次我们将以水星MER1200G路由器为例完整解析从Archer C5V4第三方固件刷回原厂的逆向工程全过程。1. 硬件准备与底层访问1.1 拆解与串口定位拆开MER1200G的外壳后PCB板上显眼的四个圆形测试点就是我们的目标。这些测试点通常按照VCC(3.3V)、GND、TX、RX的顺序排列但不同厂商可能采用不同的引脚定义。在水星这款设备上靠近天线接口的一侧有两个额外的银色焊点这是进入下载模式的关键。提示焊接排针时建议使用尖头烙铁温度控制在300°C左右每个焊点停留时间不超过3秒以避免损坏PCB。1.2 串口通信参数配置与普通串口通信不同路由器刷机往往需要特殊的波特率组合。MER1200G在U-Boot阶段表现出一个有趣的现象发送指令波特率115200接收输出波特率128000这种不对称配置需要使用支持动态波特率调整的终端工具比如SSCOM或Putty。以下是典型连接参数参数值数据位8停止位1校验位None流控无2. 固件分区深度解析2.1 MTD分区表结构通过U-Boot环境下的mtdparts命令可以查看完整的闪存布局。MER1200G采用典型的NOR Flash存储架构其分区结构如下表所示分区名起始地址大小内容描述u-boot0x0000000x040000Bootloader区域kernel0x0400000x150000Linux内核镜像rootfs0x1900000xBA0000根文件系统art0xFF00000x010000无线校准数据2.2 关键分区功能详解mtd9_firmware.bin这是完整的固件映像包含kernel和rootfs的整合包。当执行完整刷机时我们通常操作这个文件。mtd1_kernel.bin单独的内核镜像在修复启动故障时特别有用。其MD5校验和可以通过以下命令验证md5sum mtd1_kernel.binmtd8_art.bin存储无线射频参数的分区包含设备的MAC地址和射频校准数据。误操作此分区会导致无线功能异常。3. U-Boot操作实战3.1 基本命令工作流U-Boot环境下刷机的标准流程遵循下载→擦除→写入的三步模式通过TFTP将固件传输到内存缓冲区擦除目标闪存区域将内存中的数据写入闪存对应的典型命令序列tftp 0x80060000 mtd9_firmware.bin erase 0x0 0x1000000 cp.b 0x80060000 0x0 0x1000000 reset3.2 地址空间映射原理理解内存地址映射是安全刷机的关键。在MIPS架构的路由器中0x80060000SDRAM中的临时缓冲区地址0x0Flash存储器的起始物理地址0x100000016MB Flash的总容量cp.b命令中的长度参数0x1000000表示复制整个Flash区域这实际上执行了完整固件烧录。4. 故障排除与修复技巧4.1 常见错误处理Bad Magic Number通常表示内核镜像损坏或位置错误。修复步骤进入U-Boot控制台重新下载正确的kernel镜像精确写入kernel分区tftp 0x80060000 mtd1_kernel.bin erase 0x40000 0x150000 cp.b 0x80060000 0x40000 0x1500004.2 波特率同步问题当遇到输出乱码时按以下顺序检查确认发送和接收波特率设置正确检查RX/TX线序是否接反尝试降低波特率到57600测试基本通信5. 高级操作与安全实践5.1 分区备份策略建议在刷机前先备份所有关键分区# 备份ART分区 tftp 0x80060000 0xFF0000 0x10000 save 0x80060000 0x000000 0x10000 art.bak5.2 环境变量保护U-Boot环境变量存储着关键配置刷机前建议备份printenv env.txt在完成刷机后可能需要恢复特定的网络参数setenv ipaddr 192.168.1.1 setenv serverip 192.168.1.10 saveenv6. 固件逆向工程进阶6.1 二进制分析基础使用binwalk工具可以解析固件结构binwalk -eM mtd9_firmware.bin典型输出会显示LZMA压缩的内核、SquashFS文件系统等组件。6.2 文件系统提取对于SquashFS格式的rootfs可以使用unsquashfs工具解包unsquashfs -d rootfs rootfs.bin解压后可以分析原厂固件的配置文件结构、启动脚本等关键内容。

更多文章