基本信息概述
产品:AX3000 双频WI-Fi6无线路由器
产品型号:RG-EW3000GX
固件版本:ReyeeOS 1.380.2222;EW_3.0(1)B11P380,Release(12222219)
UART固件提取
前期准备
首先摸到真机先暴力拆掉,然后焊接杜邦线 GND TX RX
配合USB 转 TTL 串口模块进行串口调试 ,那么本次就使用最新研发的 iot多功能调试板 其中的UART调试功能

非常的贴心,还准备了网卡功能,对于我这轻薄本没有网口接口太友好了。
以往我们在遇到板子上面没有显示TX RX 又或者还得边插边调,他这个有个特别好用的点,你不用管谁接TX,谁接RX ,直接俩根线连URAT0或URAT1就可以了

本次就插UART0进行串口调试
手动工作做好后,现在用MobaXterm 进行串口调试

因为无脑插上去的,因为RX和TX没有对上,没有输出日志信息

连接规则
GND ---------------> GND
TX ---------------> RX
RX ---------------> TX
这个时候只需要按一下UART0 交换按钮 ,他会自动切换RX TX,按一下马上就对上了,真的特别简单好用


已经打印信息了
启动信息分析
MTD分区信息

观察启动信息其中就有选项 0 可以进入u-boot

最后正常执行会到登录认证

但是我又不知道设置的啥密码,弱口令又进不去
先进入u-boot 再观察观察,重新上电 狂按0进入

按help 看看有没有可用指令

其实像tftpboot bootm md 等可利用的命令都挺多的,但是我们直接暴力绕过u-boot进入shell 才更方便,这里我们的思路是把u-boot传给内核系统执行的启动参数 bootargs 加个init=/bin/sh 绕过
简单描述下绕过流程
bootargs 是 U-Boot(引导程序)传给 Linux 内核的启动参数
u-boot --> 把内核加载到内存 --> 其中把bootargs传给内核读取执行 --> 执行init=/bin/sh --> shell
绕过u-boot改密码
setenv bootargs 'console=ttyS0,115200n8 init=/bin/sh'
mtkboardboot

进入shell ,接下来我们要做几件事
#挂载虚拟文件系统
mount -t sysfs sysfs /sys
mount -t tmpfs tmpfs /dev
#喂看门狗,不喂的话过了30秒就会重启后面挂载一系列操作就会白搞,所以先搞这个
#查看看门狗设备号
cat /sys/class/watchdog/watchdog0/dev

拿到251:0
mknod /dev/watchdog c 251 0
挂载 /proc 定位 rootfs_data 可写数据分区
mount -t proc proc /proc
cat /proc/mtd

找到对应的 mtd9 ,接下来 手动挂载 Overlay 文件系统并 chroot 进入真实系统环境
mount -t tmpfs tmpfs /tmp
mkdir -p /tmp/ov /tmp/root
# 创建 mtdblock9 设备节点并挂载 rootfs_data 分区(jffs2)到 /tmp/ov
mknod /dev/mtdblock9 b 31 9
mount -t jffs2 /dev/mtdblock9 /tmp/ov
#挂载 OverlayFS
mount -t overlay overlay -o lowerdir=/,upperdir=/tmp/ov/upper,workdir=/tmp/ov/work /tmp/root
chroot /tmp/root /bin/sh

syn
