实验环境
实验虚拟机:ubuntu22.04.01
模拟固件:HG532eV100R001C01B020_upgrade_packet.bin
镜像文件:debian_squeeze_mips_standard.qcow2和vmlinux-2.6.32-5-4kc-malta
固件模拟过程
从固件中提取出文件系统
使用binwalk从需要模拟的固件中提取出相应的文件系统
binwalk -Me HG532eV100R001C01B020_upgrade_packet.bin

命令执行完毕之后,我们发现当前目录下多了一个_HG532eV100R001C01B020_upgrade_packet.bin.extracted文件,里面存放了提取出来的文件系统以及其他的一些东西

squashfs-root目录相信大家都不陌生,里面一般存放的都是文件系统之类的文件。进去看下,确实如此。

到这里,文件系统的提取就完成了。
创建网桥
这里我们在_HG532eV100R001C01B020_upgrade_packet.bin.extracted文件价下创建一个start.sh文件(名字无所谓,主要是.sh可执行文件),放入如下代码

#!/bin/sh
sudo brctl addbr virbr0
sudo ifconfig virbr0 192.168.181.55/24 up
sudo tunctl -t tap0
sudo ifconfig tap0 192.168.181.56/24 up
sudo brctl addif virbr0 tap0
sudo qemu-system-mips -M malta -kernel /home/iot/Desktop/qemu/vmlinux-2.6.32-5-4kc-malta -hda /home/iot/Desktop/qemu/debian_squeeze_mips_standard.qcow2 -append "root=/dev/sda1 console=tty0" -netdev tap,id=tapnet,ifname=tap0,script=no -device rtl8139,netdev=tapnet -nographic
保存后,在当前文件下给.sh文件赋予可执行文件的权限,并执行。
注意:这里两个镜像文件的路径需要是绝对路径,否则会报错说找不到相应的文件。
使用一个可执行文件的目的在于不用每次都输入一大串的命令,只需要每次使用./执行该文件即可进行相应的配置。
chmod +x start.sh
./start.sh


运行到最后,会让我们输入相应的账号密码用于登录。(账号与密码均为root)
配置虚拟网络
查看此时路由器的网络配置环境,发现网卡没有配置相应的ip地址,需要我们手动配置一个。

输入如下命令进行网卡信息的配置:
ifconfig eth0 192.168.181.57
ifconfig eth0 192.168.181.57/24 up
ifconfig
首先是添加一个ip地址,接着启动该网卡,并查看启动情况。

查看与主机的通讯情况,可以看到此时已经可以和主机互相ping同,表示网卡工作正常。

到这里,网桥与虚拟网卡的配置就完成了,下一步就是启动我们的路由器。
启动路由器
将目标文件系统上传到虚拟机
查看当前的模拟界面,除了一些配置文件什么都没有

首先将我们之前提取出来的文件系统进行打包,之后上传到虚拟机中
解压。
使用如下命令:
tar -czvf squashfs-root.tar squashfs-root/
scp squashfs-root.tar root@192.168.181.57:/root/
执行文件挂载
在虚拟机中讲传过来的压缩包解压,输入一下命令进行文件挂载:
mount -o bind dev ./squashfs-root/dev
mount -t proc /proc ./squashfs-root/proc
这里还是推荐使用.sh文件进行命令的执行,创建一个build.sh文件,输入相应的命令:

将.sh文件传输到虚拟机中
scp build.sh root@192.168.181.57:/root/
回到虚拟机中,使用chmod将build.sh文件设置为可执行文件。

现在完事具备,只需要将build.sh文件执行即可。
使用ssh登录路由器并启动
这里不直接在虚拟机中登录虚拟机,而在主机上使用ssh登录虚拟机,原因在于虚拟机在启动路由器的过程中,会更改之前配置的ip地址,导致网页无法访问的情况。
在主机中登录虚拟机:

启动路由器:
./bin/upnp
./bin/mic

没有报错,表示设备模拟成功。

重新配置ip并登录网页
需要注意的是,此时设备的ip地址已经发生了更改,我们在虚拟机中使用ifconfig查看网卡状态,发现之前配置的ip地址没有了,这是由于有些设备在启动的过程中,会自动将之前的一些ip配置信息删除掉。因此,设备启动后,仍然需要手动配置一下ip。


现在路由器设备已经成功模拟出来了,可以通过web服务登录路由器管理界面。
访问192.168.181.57网址,可以看到显示有相应的登录界面。

用户名与密码均为user。登录进去之后可以查看相应的配置。

本文详细描述了一次在Ubuntu22.04环境中对华为HG532固件进行模拟的实验过程,包括使用binwalk提取文件系统,创建网桥,配置虚拟网络,启动路由器,以及通过SSH登录并重新配置IP地址,最终实现对路由器管理界面的访问。
1239

被折叠的 条评论
为什么被折叠?



