有人知道路由器 Rom 文件(从路由器界面下载)通常保存在什么文件类型或文件系统中吗?是否有一个工具(我们这里不讨论像 zip/7z/rar 这样的存档工具)可以用来解压/正确地重新打包固件文件?我问这个问题的原因是我想摆弄一下,可能对它们进行一些更改,然后用修改后的固件刷新我的路由器。路由器不支持自定义和花哨的第三方固件,因此我需要修改制造商的库存固件。
答案1
一个名为的工具宾沃克可能是分析固件的一个很好的起点。它将生成一个列表,其中确切包含固件文件。它还能够提取已识别的块,但我使用的是日反而。
虽然很有用,宾沃克并不完全准确。我实际上正在努力解决 ZynOS 固件问题,宾沃克据说这是 LZMA 压缩文件,但没有 LZMA 工具可以解压它。它看起来像一大包数据,没有任何已知的文件结构。
这对您来说可能是坏消息,但有时不可能简单地将其解压、更改某些内容并重新打包(例如我的 Linksys,其固件只是一个带有典型 Linux 文件系统的 SquashFS 分区)。我将进行进一步研究,如果我偶然发现一些有趣的东西,我将更新我的帖子。
你应该得到类似的输出宾沃克。
DECIMAL HEX DESCRIPTION
-------------------------------------------------------------------------------------------------------------------
65790 0x100FE LZMA compressed data, properties: 0x7E, dictionary size: 4194304 bytes, uncompressed size: 65536 bytes
84992 0x14C00 ZynOS header, header size: 48 bytes, rom image type: ROMBIN, uncompressed size: 66696, compressed size: 16847, uncompressed checksum: 0xCB32, compressed checksum: 0xD5A5, flags: 0xE0, uncompressed checksum is valid, the binary is compressed, compressed checksum is valid, memory map table address: 0x0
85043 0x14C33 LZMA compressed data, properties: 0x5D, dictionary size: 8388608 bytes, uncompressed size: 66696 bytes
128002 0x1F402 GIF image data, version "89a", 200 x 50
136194 0x21402 GIF image data, version "89a", 560 x 50
328486 0x50326 Copyright string: " (c) 2001 - 2012 TP-LINK TECHNOLOGIES CO., LTD.LOGIES CO., LTD."
350208 0x55800 ZynOS header, header size: 48 bytes, rom image type: ROMBIN, uncompressed size: 5077932, compressed size: 1121804, uncompressed checksum: 0xB4F9, compressed checksum: 0x84CA, flags: 0xE0, uncompressed checksum is valid, the binary is compressed, compressed checksum is valid, memory map table address: 0x0
350259 0x55833 LZMA compressed data, properties: 0x5D, dictionary size: 8388608 bytes, uncompressed size: 5077932 bytes
列:
- 目标文件中的位置(十进制)
- 目标文件中的位置(十六进制)
- 区块的简短描述