听起来您不确定自己到底想做什么。您是否特别想对固件的任何部分进行逆向工程?我建议您首先阅读devttys0.com上的一些博客文章,因为他似乎是有关逆向工程路由器固件的信息的绝佳来源。
如果二进制文件包含符号,IDA Pro 应该会自动为您加载它们。路由器固件的符号经常被剥离。但是,Linux 内核是根据 GPL 许可的,这意味着制造商有义务提供内核的源代码。Linksys确实提供了路由器内核的源代码;你可以先看看那个。
然而,有趣的东西通常在 rootfs 中的内核模块和/或二进制文件中,而不是内核本身。我为你的路由器下载了固件并用 解压binwalk -Mrev,binwalk 确实能够解压 rootfs。浏览它,看看你是否能找到任何有趣的东西。
例如,让我们看看主要的 Web CGI 二进制文件usr/sbin/setup.cgi. file针对此文件运行会得到以下结果:
usr/sbin/setup.cgi: ELF 32-bit MSB executable, MIPS, MIPS-I version 1 (SYSV), dynamically linked, interpreter /lib/ld-uClibc.so.0, stripped
二进制文件已被剥离,但查看带有 的符号表readelf -s usr/sbin/setup.cgi,我们仍然可以看到不少有趣的函数名称。接下来,我们可以查看二进制文件中的字符串strings。(我个人更喜欢使用,strings -n8因为通常少于 8 个字符的字符串是误报,当它们不是时,无论如何它们通常都不重要。)通常二进制文件的字符串可以揭示很多关于二进制文件的作用以及二进制文件的方式工作,而且这更容易,因为路由器制造商喜欢使用它system(3)来运行 Linux shell 命令。
一旦您知道您发现了一个有趣的二进制文件,您就可以将其加载到 IDA Pro 中以对其进行反汇编并开始对其进行逆向工程。