在常见的mips路由器固件中,/bin/boa
是个常用的web程序
而这里我们拿到固件后首先要尝试的就是将该固件的web服务启动起来
但是却遇到了如下错误
此时可以在IDA中搜索Initialize AP MIB failed!
字符串,来分析程序崩溃的原因
可以看到问题就出现在这里,当apmib_init函数执行完成后寄存器v0的值仍然为0,而bnez指令的作用便是根据v0是否为0来跳转,因此由于apmid_init函数的错误而导致程序没有实现正常的跳转到loc_418250处,才出现错误。
针对上面情况,已知的有两种解决方案:
对于这个问题,我们直接使用010editor来修改即可
再次运行后发现还有新的错误出来
通过ida动态调试发现问题是出现在apmib_get
函数导致的segmentation fault
继续老办法打开01editor 这回将地址0x48e2a8
处填充为0字节
保存后再次运行