实验虚拟机: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 [email protected]:/root/
在虚拟机中讲传过来的压缩包解压,输入一下命令进行文件挂载:
mount -o bind dev ./squashfs-root/dev
mount -t proc /proc ./squashfs-root/proc
这里还是推荐使用.sh文件进行命令的执行,创建一个build.sh文件,输入相应的命令:
将.sh文件传输到虚拟机中
scp build.sh [email protected]:/root/
回到虚拟机中,使用chmod将build.sh文件设置为可执行文件。
现在完事具备,只需要将build.sh文件执行即可。
这里不直接在虚拟机中登录虚拟机,而在主机上使用ssh登录虚拟机,原因在于虚拟机在启动路由器的过程中,会更改之前配置的ip地址,导致网页无法访问的情况。
在主机中登录虚拟机:
启动路由器:
./bin/upnp
./bin/mic
需要注意的是,此时设备的ip地址已经发生了更改,我们在虚拟机中使用ifconfig查看网卡状态,发现之前配置的ip地址没有了,这是由于有些设备在启动的过程中,会自动将之前的一些ip配置信息删除掉。因此,设备启动后,仍然需要手动配置一下ip。
现在路由器设备已经成功模拟出来了,可以通过web服务登录路由器管理界面。
访问192.168.181.57网址,可以看到显示有相应的登录界面。
用户名与密码均为user。登录进去之后可以查看相应的配置。