我正在尝试对具有 MIPS CPU 的 BE126 wifi 中继器的固件升级过程进行逆向工程。
我在制造商网站上找不到固件升级图像。
我有处理器的工具链。
我转储了设备的flash,flash由3个分区组成:1.引导分区2.压缩的Linux内核3.rootfs
在引导分区中,有一个 LZMA 压缩文件,通过在解压后的输出上运行字符串,它看起来像是 u-boot 并且它有一些关于升级过程的字符串
不幸的是,第二阶段的 u-boot 是二进制格式,没有 uImage 标头,我该如何反汇编它?
我知道我需要找到加载地址,但我不知道如何找到,我在互联网上找到的大部分研究都包含具有加载地址的 uImage 标头。
我试图反转第一阶段的引导加载程序,我知道加载地址但不知道代码段的大小。
引导分区上的 binwalk 输出:
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
6488 0x1958 LZMA compressed data, properties: 0x5D, dictionary size: 8388608 bytes, uncompressed size: 107408 bytes
70881 0x114E1 Zlib compressed data, default compression
83275 0x1454B Zlib compressed data, default compression
95669 0x175B5 Zlib compressed data, default compression
136417 0x214E1 Zlib compressed data, default compression
Zlib 数据是配置文件。
在提取的 LZMA 上进行 binwalk:
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
86608 0x15250 CRC32 polynomial table, big endian
99996 0x1869C HTML document header
100720 0x18970 HTML document footer
100772 0x189A4 HTML document header
101132 0x18B0C HTML document footer
101184 0x18B40 HTML document header
101523 0x18C93 HTML document footer
101576 0x18CC8 HTML document header
101824 0x18DC0 HTML document footer
101876 0x18DF4 HTML document header
102226 0x18F52 HTML document footer