物联网设备固件模拟入门

作者:CQITer小编 时间:2018-04-28 09:24

字号

在这篇文章中,我们将看看如何才能完成特定物联网设备的固件模拟。固件模拟可以用于许多不同的目的,例如更好地分析固件,进行开发,执行远程调试等。

通过这种技术,您可以模拟最初想在不同架构上运行的固件,并与其进行交互,即使没有物理物联网设备。固件模拟较早方法之一是创建Qemu镜像,然后将固件文件系统的内容复制到Qemu镜像上,然后启动镜像。

但是,存在一个更简单的方案,它在模拟固件时不容易出现问题。我们来看一下。

您需要的工具:

AttifyOS VM或任何基于Linux的映像

固件分析工具包(https://github.com/attify/firmware-analysis-toolkit

您想要模拟的固件(例如:Netgear WNAP320)

设置

一旦你拥有了上述的三个软件,第一步就是设置固件分析工具包。

固件分析工具包只是实际项目Firmadyne的一个包装,可以自动模拟新固件。

要下载和安装FAT,只需简单地克隆git存储库,如下所示:

git clone --recursive https://github.com/attify/firmware-analysis-toolkit.git

 物联网设备固件模拟入门

接下来,我们需要设置Binwalk,Firmadyne和Firmware-Mod-Kit等独立工具。

设置Binwalk

要设置Binwalk,只需先安装如下的依赖关系,然后安装该工具:

cd firmware-analysis-toolkit/binwalk sudo ./deps.sh sudo python setup.py install

如果一切顺利,您将能够运行binwalk并看到如下所示的输出。

 物联网设备固件模拟入门

设置Firmadyne

要设置Firmadyne,需要到Firmadyne文件夹并打开firmadyne.config。如下图所示。

 物联网设备固件模拟入门

取消该行FIRMWARE_DIR=/home/vagrant/firmadyne/注释,并将地址修改为Firmadyne的当前路径。在我的案例中修改的行如下所示。

 物联网设备固件模拟入门

一旦更新了路径,下一步就是下载Firmadyne工作所需的额外二进制文件。这可能需要一段时间(1-2分钟,所以在这个时候我们可以喝杯咖啡或啤酒)。

 物联网设备固件模拟入门

完成后,下一步是安装Firmadyne的其余依赖项:

sudo -H pip install git+https://github.com/ahupp/python-magic sudo -H pip install git+https://github.com/sviehb/jefferson sudo apt-get install qemu-system-arm qemu-system-mips qemu-system-x86 qemu-utils

此时还要根据Firmadyne官方wiki的说明来设置PostgreSQL数据库。

提示输入密码时,数据库的密码应该是firmadyne(避免以后出现问题)。

sudo apt-get install postgresql sudo -u postgres createuser -P firmadyne sudo -u postgres createdb -O firmadyne firmware sudo -u postgres psql -d firmware < ./firmadyne/database/schema

到此Firmadyne设置完成。

设置固件分析工具包

我们要做的第一件事是移动fat.py和reset.py到firmadyne文件夹下。

完成后,打开fat.py并修改root密码(以便在运行脚本时不会要求您输入密码),并指定firmadyne的路径,如下所示。

 物联网设备固件模拟入门

这就是所有的设置。确保我们的postgresql数据库已启动并正在运行。

 物联网设备固件模拟入门

模拟固件镜像

为了模拟固件,我们需要运行./fat.py并指定固件名称。在这个案例中,我们指定WNAP320.zip固件。

对于Brand,我们可以指定任何参数。

责任编辑:CQITer新闻报料:400-888-8888   本站原创,未经授权不得转载
关键词 >>物联网 专栏
继续阅读
热新闻
推荐
关于我们联系我们免责声明隐私政策 友情链接