固件基础

了解固件结构是救砖和刷机的关键。

固件结构

路由器固件通常包含以下几个部分。

Flash 分区
分区名称 大小(典型) 内容
u-boot 256KB-512KB 引导程序
kernel 3MB-5MB Linux 内核
rootfs 剩余空间 根文件系统
nvram 64KB-128KB 配置存储
art 64KB 无线参数
文件系统类型
  1. SquashFS:只读压缩文件系统,常见于原厂固件
  2. JFFS2:可读写,常见于 OpenWRT
  3. UBIFS:大容量 NAND Flash 使用
  4. YAFFS2:早期嵌入式设备使用

固件格式

常见扩展名
  1. .bin:通用二进制格式
  2. .trx:Linksys/华硕固件格式
  3. .chk:Netgear 专用格式
  4. .img:通用镜像格式
固件头部

大多数固件以固定头部开头:

00 00 00 00 4D 49 50 53  # MIPS 标识

FF FF FF FF              # TP-Link 常见

启动流程

完整启动序列
  1. 上电 → CPU 初始化
  2. U-Boot → 读取环境变量
  3. 内核加载 → 从 Flash 读取内核
  4. 文件系统 → 挂载根文件系统
  5. 网络初始化 → 启动网络服务
  6. Web 服务 → HTTP 服务就绪
U-Boot 启动参数
bootcmd=bootm 9f020000
bootargs=console=ttyS0,115200 root=/dev/mtdblock2
中断启动

在启动过程中按特定键可进入:

  1. 回车键:进入命令模式
  2. tftp:网络启动
  3. firmware:指定固件位置

Bootloader 介绍

U-Boot

最通用的开源引导程序。

  1. 支持多种 CPU 架构(MIPS/ARM/x86)
  2. 支持网络启动(TFTP)
  3. 可修改启动参数
  4. 常见于小米、华为部分机型
setenv ipaddr 192.168.1.1
setenv serverip 192.168.1.100
tftpboot 0x81000000 firmware.bin
erase 0x9f000000 +0x300000
cp.b 0x81000000 0x9f000000 0x300000
Breed

国内路由器常见的闭源引导程序。

  1. 界面友好(Web 控制台)
  2. 支持多固件备份
  3. 内置 TFTP 恢复
  4. 常见于 PandoraBox、Padavan 固件
CFE

Broadcom 芯片专用引导程序。

  1. 适用于 Netgear、华硕部分机型
  2. 串口控制台操作
  3. 支持 NFS 网络启动
原厂 Boot
  1. 功能简单
  2. 只能刷官方固件
  3. 部分可解锁刷第三方

固件修改

提取固件
# 使用 binwalk 提取
binwalk -e firmware.bin

# 或手动解压
tar -xvf openwrt.bin
修改工具
  1. firmware-mod-kit:固件修改工具包
  2. binwalk:固件分析工具
  3. squashfs-tools:SquashFS 文件系统工具
刷入固件
  1. 通过 Web 界面上传
  2. 通过 TFTP 刷入
  3. 通过 U-Boot 命令行
  4. 通过 TTL 串口直接写入 Flash

安全检查

固件签名

现代路由器对固件有签名验证:

  1. 安全启动:仅允许官方固件
  2. Bootloader 锁:禁止刷写
  3. 闪存锁:防止读取
绕过方法
  1. 使用 TTL 串口直接刷写
  2. 短接 Flash 芯片特定引脚
  3. 利用漏洞降级到低版本

相关链接

⚠️ 技术声明

本教程仅供学习和参考。刷写固件存在风险,可能导致设备变砖或失去保修。请在操作前:

最后更新:2026年4月