如何确定我的路由器在重新启动后存储其配置的位置?

逆向工程 linux 固件 嵌入式
2021-06-23 04:12:45

我目前正在研究我的家用路由器 (D-Link 2760-U),它具有(某种)专有 ISP 固件。我想要实现的是了解路由器如何在重新启动后保持其配置设置。

mount 输出:

/dev/mtdblock0 on / type squashfs (ro,relatime)
/proc on /proc type proc (rw,relatime)
tmpfs on /var type tmpfs (rw,relatime,size=420k)
tmpfs on /mnt type tmpfs (rw,relatime,size=16k)
sysfs on /sys type sysfs (rw,relatime)

我做了nvram show,它确实包含一些无线配置,例如使用中的加密、无线模式、预共享密钥,但仅此而已。显然,路由器有其他配置(例如 DNS、PPP、端口转发等)必须存储在其他地方。可以看出,所有挂载的文件系统都是易失性的,因此无法将配置存储在其中。

除了文件系统和NVRAM之外,信息还可以保存在哪里?我如何去发现这个?

1个回答

我玩过至少一个(不是 D-Link)基于 Linux 的路由器,它将其配置存储在一个裸mtd分区中,并使用专有二进制文件访问它。它使用 LZMA 或其他方式压缩数据,但在其中,您可以看到明文密码(不好!)

D-Link其实有很好的GPL源码系统,去http://tsd.dlink.com.tw/downloads2008list.asp?SourceType=download&OS=GPL输入2760就可以下载整个buildroot和源码那个路由器。

即使他们碰巧使用一些非标准的专有机制来保存配置,您也应该能够从检查 GPL 源代码中了解它隐藏在哪里......