OpenWRT 学习笔记-17 OpenWRT固件的结构分析,逆向解包

本文详细介绍了OpenWRT固件由固件头、kernel和rootfs三部分组成,重点解析了固件头的作用,并提到了不同厂商如BroadCom、MediaTek、QualCom的固件头定义。还介绍了使用binwalk工具解包固件以及rootfs通常为squashfs格式。此外,文章提及了防止固件版本误刷的措施以及如何使用mksquashfs和mkinage重新打包image。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

固件是由三部分组成:固件头、kernel、rootfs。我们可以通过mkimage工具分析固件头,用binwalk来解包固件分析kernel和rootfs,通常rootfs一般是squashfs格式的。下面我来一步步给大家剖析,每个部分的细节。

1- 固件头,用于让uboot可以识别固件,解压等非常关键的信息。

2- kernel

3- rootfs

4- 填充区(为了取整)

 BroadCom(博通)trx固件头定义(HDR0)

struct trx_header {
    uint32_t magic;            /* "HDR0" */
    uint32_t len;            /* Length of file including header */
    uint32_t crc32;            /* 32-bit CRC from flag_version to end of file */
    uint32_t flag_version;    /* 0:15 flags, 16:31 version */
    uint32_t offsets[4];    /* Offsets of partitions from start of header */
};

    MediaTek(联发科)、QualCom(高通 )u-boot固件头定义

#define IH_MAGIC    0x27051956  /* Image Magic Number       */
#define IH_NMLEN        32  /* Image Name Length        */
 
/*
 * Legacy format image header,
 * all data in network byte order (aka natural aka bigendi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值