TP-LINK路由器固件结构分析(ver. 1.0版本)

普联技术有限公司(以下简称"TP-LINK")是全球领先的网络通讯设备供应商。自1996年成立以来,始终坚持自主研发、自主制造、自主营销,致力于为大众提供最便利的本地局域网络互联和Internet接入手段,为大众在生活、工作、娱乐上日益增长的网络使用需求,提供高品质、高性能价格比的全面设备解决方案。TP-LINK产品涵盖以太网、无线局域网、宽带接入、电力线通信、安防监控,在既有的传输、交换、路由等主要核心领域外,正大力扩展智能家居、智能楼宇、人工智能、云计算、边缘计算、数据存储、网络安全、工业互联网等领域,为更广泛的用户提供系统化的设备、解决方案和整体服务。

TP-LINK路由器固件分为多个版本,主要是根据固件头的字符串进行区分:

序号版本识别
1ver. 1.0固件头包含ver. 1.0
2ver. 2.0固件头包含ver. 2.0
3Cloud固件头包含fw-type:Cloud

我们首先来看看最常见的ver. 1.0版本的固件,这里分析的型号为TL-WR841N,硬件版本v7,固件版本TL-WR841N_v7_120201。使用本站的固件分析工具可以分析固件结构:

解析后结果如下:

序号偏移说明
10x0-0x1FF固件头
20x200-0xFFFFF压缩的内核映像 vmlinux
30x100000-固件末尾文件系统映像 rootfs

其中固件结构的第一部分固件头是比较关键的,下面我们通过本站固件分析工具的结果和16进制工具打开固件分析了解其具体结构:

序号偏移说明
10x00-0x03固件头版本,值为0x01000000
20x04-0x1b供应商名称,字符串为TP-LINK Technologies
30x1c-0x1f固件版本类型,字符串为ver. 1.0
40x40-0x43产品ID,值为0x08410007,解析型号为841,硬件版本v7
50x44-0x47产品版本,值为0x00000001
60x48-0x4b填充数据,值为0x00000000
70x4c-0x5b固件校验值,值为73852F49B3BBE2B33864BE163414719B
80x5c-0x5f填充数据,值为0x00000000
90x60-0x6f内核校验值,值为6D342984316C359EB178AFB5DC108D37
100x70-0x73填充数据,值为0x00000000
110x74-0x77内核加载地址,值为0x80002000
120x78-0x7b内核入口点,值为0x801BD000
130x7c-0x7f固件总长度,值为0x3C0000
140x80-0x83内核偏移,值为0x200
150x84-0x87内核长度,值为0x000D261C
160x88-0x8b文件系统偏移,值为0x100000
170x8c-0x8f文件系统长度,值为0x2C0000
180x90-0x93bootloader偏移,值为0
190x94-0x97bootloader长度,值为0
200x98-0x99主版本号,值为3
210x9a-0x9b次版本号,值为0xD(13)
220x9c-0x9d小版本号,值为9
230x9e-0x1ff填充

具体内容可以参考firmware-mod-kit工具中的源码 tp-tool.c

留下评论

您的电子邮箱地址不会被公开。 必填项已用*标注