解压路由器固件文件

解压路由器固件文件

有人知道路由器固件文件(从制造商网站下载)通常保存在什么文件类型或文件系统中吗?是否有一个工具(我们这里不讨论像 zip/7z/rar 这样的存档工具)可以用来解压/正确地重新打包固件文件?我问这个问题的原因是我想摆弄固件中的默认 dyndns 服务,可能对它们进行一些更改,然后用修改后的固件刷新我的路由器。路由器不支持自定义和花哨的第三方固件,因此我需要修改制造商的库存固件。

编辑 - 当我发布这个问题时,我认为路由器固件中的 dyndns 更新程序只是一个简单的 bash 脚本,我想我可以对脚本进行一些快速编辑,但当我检查路由器中运行的所有进程时,发现它实际上是一个二进制应用程序,所以这个问题不再相关

答案1

鲍勃说的话。

另外,zip、7-zip 和相关工具也可以提供帮助,因为图像文件本身通常是压缩的,而且有时图像使用的格式可以通过常见的压缩实用程序之一打开。

实际修改固件的标准程序是获取构建固件所需的所有工具、获取固件源、更改选项并自行构建固件。这可能或不可能,具体取决于路由器本身。路由器通常使用 GNU/Linux 操作系统,并且由于使用许可,它们需要公开提供固件某些部分的源代码。它们通常隐藏在制造商网站的某个地方,尽管制造商违反许可证而不发布他们修改的源代码并不罕见。

具体情况取决于您的路由器制造商和路由器的型号。

您(通常)不能简单地更改二进制文件中的值,因为很难找到需要更改的值的确切位置,并且固件通常具有某种保护系统,如果固件被修改,它将阻止固件被使用。这样做的主要原因是为了防止因网络传输到路由器而损坏的固件被刷新,并防止它们被破坏。

答案2

路由器固件很可能是一个编译后的二进制文件 - 除非您反汇编固件,对其进行调整(几乎在汇编级别)并重新编译,否则无需解压。

如果它是一个具有可用源的路由器 - 例如,WRT54GL,那么就需要找到源并进行编译。

不过我要指出的是,运行动态 DNS 客户端或编写一个快速而粗糙的动态 DNS 脚本客户端相对简单,这是一种更简单的方法来获得你想要的东西。

相关内容