之前我们学习了如何模拟运行IoT固件,但是,现实中并不是所有固件都能模拟运行成功,比如固件运行可能依赖于硬件,qemu无法完全模拟,所以,本节我们就来学习如何修复固件的运行环境,从而成功模拟固件运行。
我们本次使用的固件是D-Link的DIR-605L FW_113固件,下载地址:ftp://ftp2.dlink.com/PRODUCTS/DIR-605L/REVA/
拿到固件后,我们惯用的使用fat工具进行模拟,会发现它报错了,Interfaces那里也为空,说明模拟运行失败了。
上github上查询该错误,作者无奈地回复说其实不是所有固件都能用firmadyne模拟的,尤其是那些需要与硬件设备交互的固件。
好,那就换种思路,模拟固件运行的实质其实就是把固件的Web程序跑起来,而模拟失败则说明Web程序运行出错了,我们接下来就要针对看看Web程序报错的原因以及如何修复运行环境。首先用binwalk提取固件的文件系统,提取出来的路径为squashfs-root-0。