Netgear 路由器 chk 固件文件提取
其他路由的特殊格式应该也可以按照此方法提取文件系统。
Netgear 路由器 chk 固件文件提取
前言
由于要分析的 Netgear 路由器的固件文件格式的 .chk 后缀的,之前没有分析过,记录下来方便以后做参考。
常见固件文件格式
最常见的固件文件格式是.bin,但定制的固件文件格式有.npk(Mikrotik 公司)、.chk(Netgear)、.fw(Cambrionix 公司)等等。
以下命令主要用于分析和提取嵌入式设备的固件文件,包括解压、解析 UBI 文件系统以及提取 SquashFS 文件系统的内容:
提取操作
1
2
3
# 使用 Binwalk 工具对指定的固件文件(XR1000v2-V1.1.0.22_2.1.34_HOTFIX.chk)进行提取操作。
# Binwalk 是一个用于固件分析和提取的工具,-e 参数表示提取文件中的所有组件。
binwalk -e XR1000v2-V1.1.0.22_2.1.34_HOTFIX.chk
安装 ubireader 等工具
1
2
3
4
5
6
7
8
# 安装 liblzo2-dev 开发库,这是用于支持 LZO 压缩算法的库文件。
# 一些工具(如 UBI 解析工具)可能依赖此库。
sudo apt install liblzo2-dev
# 使用 pip 安装 python-lzo,这是一个 Python 的 LZO 压缩算法库。
# 用于处理 LZO 压缩的数据。
sudo pip install python-lzo
# 使用 pip 安装 ubi_reader,这是一个用于解析和提取 UBI(Universal Block Interface)格式数据的 Python 工具。
sudo pip install ubi_reader
解析 .ubi 文件中的卷 rootfs_ubifs
1
2
3
4
5
6
# 使用 ubireader_display_info 工具显示 3A.ubi 文件的信息。
# 该工具会解析 UBI 文件并输出其结构和内容信息。这里我想要的是
ubireader_display_info 3A.ubi
# 使用 ubireader_extract_images 工具从 3A.ubi 文件中提取镜像。
# 该工具会从 UBI 文件中提取出包含的分区镜像文件。例如下面的 .ubifs 文件。
ubireader_extract_images 3A.ubi
提取根文件系统
1
2
3
4
5
6
# 安装 squashfs-tools,这是一个用于处理 SquashFS 文件系统的工具。
# SquashFS 是一种压缩的只读文件系统,常用于嵌入式设备的根文件系统。
sudo apt-get install squashfs-tools
# 使用 unsquashfs 命令解压指定的 SquashFS 镜像文件(img-108551233_vol-rootfs_ubifs.ubifs)。
# 该命令会将 SquashFS 镜像解压到当前目录下,生成文件系统的内容。
unsquashfs ./ubifs-root/3A.ubi/img-108551233_vol-rootfs_ubifs.ubifs
This post is licensed under
CC BY 4.0
by the author.