记一次华为HG532固件模拟

记一次华为HG532固件模拟

  • 实验环境
  • 固件模拟过程
    • 从固件中提取出文件系统
    • 创建网桥
    • 配置虚拟网络
    • 启动路由器
      • 将目标文件系统上传到虚拟机
      • 执行文件挂载
      • 使用ssh登录路由器并启动
      • 重新配置ip并登录网页

实验环境

实验虚拟机: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文件,里面存放了提取出来的文件系统以及其他的一些东西
记一次华为HG532固件模拟_第1张图片
squashfs-root目录相信大家都不陌生,里面一般存放的都是文件系统之类的文件。进去看下,确实如此。
记一次华为HG532固件模拟_第2张图片
到这里,文件系统的提取就完成了。

创建网桥

这里我们在_HG532eV100R001C01B020_upgrade_packet.bin.extracted文件价下创建一个start.sh文件(名字无所谓,主要是.sh可执行文件),放入如下代码
记一次华为HG532固件模拟_第3张图片

#!/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

在这里插入图片描述
记一次华为HG532固件模拟_第4张图片
运行到最后,会让我们输入相应的账号密码用于登录。(账号与密码均为root)

配置虚拟网络

查看此时路由器的网络配置环境,发现网卡没有配置相应的ip地址,需要我们手动配置一个。
记一次华为HG532固件模拟_第5张图片
输入如下命令进行网卡信息的配置:

ifconfig eth0 192.168.181.57
ifconfig eth0 192.168.181.57/24 up
ifconfig

首先是添加一个ip地址,接着启动该网卡,并查看启动情况。
记一次华为HG532固件模拟_第6张图片
查看与主机的通讯情况,可以看到此时已经可以和主机互相ping同,表示网卡工作正常。
记一次华为HG532固件模拟_第7张图片
到这里,网桥与虚拟网卡的配置就完成了,下一步就是启动我们的路由器。

启动路由器

将目标文件系统上传到虚拟机

查看当前的模拟界面,除了一些配置文件什么都没有
记一次华为HG532固件模拟_第8张图片
首先将我们之前提取出来的文件系统进行打包,之后上传到虚拟机中
解压。
使用如下命令:

 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文件,输入相应的命令:
记一次华为HG532固件模拟_第9张图片
将.sh文件传输到虚拟机中

scp build.sh [email protected]:/root/

回到虚拟机中,使用chmod将build.sh文件设置为可执行文件。
记一次华为HG532固件模拟_第10张图片
现在完事具备,只需要将build.sh文件执行即可。

使用ssh登录路由器并启动

这里不直接在虚拟机中登录虚拟机,而在主机上使用ssh登录虚拟机,原因在于虚拟机在启动路由器的过程中,会更改之前配置的ip地址,导致网页无法访问的情况。
在主机中登录虚拟机:
记一次华为HG532固件模拟_第11张图片
启动路由器:

./bin/upnp
./bin/mic

记一次华为HG532固件模拟_第12张图片
没有报错,表示设备模拟成功。
记一次华为HG532固件模拟_第13张图片

重新配置ip并登录网页

需要注意的是,此时设备的ip地址已经发生了更改,我们在虚拟机中使用ifconfig查看网卡状态,发现之前配置的ip地址没有了,这是由于有些设备在启动的过程中,会自动将之前的一些ip配置信息删除掉。因此,设备启动后,仍然需要手动配置一下ip。
记一次华为HG532固件模拟_第14张图片
记一次华为HG532固件模拟_第15张图片
现在路由器设备已经成功模拟出来了,可以通过web服务登录路由器管理界面。
访问192.168.181.57网址,可以看到显示有相应的登录界面。
记一次华为HG532固件模拟_第16张图片
用户名与密码均为user。登录进去之后可以查看相应的配置。
记一次华为HG532固件模拟_第17张图片

你可能感兴趣的:(linux,bash,debian)