最近需要一个带 USB 的小路由,刚好看见了 RAX3000M,恩山说是现在破解了配置文件的加密密码,刷机无需无需拆机了。多多105拿下一个全新的普通版(128M ROM),批次还挺新,生产日期20231124。

开启 SSH 和去除 ROOT 密码

我这里不是色魔张大妈,尽量少放图,省的硬盘。

导出配置文件

给路由器插上电,网线插路由器 lan 口上与电脑连接,浏览器输入默认后台地址192.168.10.1,第一次会显示密码,可以复制到记事本临时存一下,方便后面用。进去后先完成初始化设置,建议跳过。

进入主界面后点击更多

RAX3000M_点击更多RAX3000M_点击更多

然后点击管理,左侧的配置管理,然后点击导出文件

RAX3000M_点击管理RAX3000M_点击管理

cfg_export_config_file.conf下载后上传到 Linux 系统中,或者使用 WSL 子系统也是可以的。

解压配置文件

openssl aes-256-cbc -d -pbkdf2 -k $CmDc#RaX30O0M@\!$ -in cfg_export_config_file.conf -out - | tar -zxvf -

解压后会得到一个 etc 文件夹,如下图,红框圈中的是 SSH 服务 Dropbear 的配置文件

RAX3000M_找到Dropbear配置文件RAX3000M_找到Dropbear配置文件

开启 SSH

用编辑器修改etc/config/dropbear文件,把option enable '0'改为option enable '1'

RAX3000M_启用SSHRAX3000M_启用SSH

去除 root 密码

root 密码存在etc/shadow这个文件中,我们不能读取,但是去除密码还是可以的

原来内容类似下边

root:$1$YebSmMyK$8TBIUnTLK/4eCYDqtYaD4.:19179:0:99999:7:::
daemon:*:0:0:99999:7:::
ftp:*:0:0:99999:7:::
network:*:0:0:99999:7:::
nobody:*:0:0:99999:7:::
ntp:x:0:0:99999:7:::
dnsmasq:x:0:0:99999:7:::
logd:x:0:0:99999:7:::
ubus:x:0:0:99999:7:::

改成下面的样子

root::19179:0:99999:7:::
daemon:*:0:0:99999:7:::
ftp:*:0:0:99999:7:::
network:*:0:0:99999:7:::
nobody:*:0:0:99999:7:::
ntp:x:0:0:99999:7:::
dnsmasq:x:0:0:99999:7:::
logd:x:0:0:99999:7:::
ubus:x:0:0:99999:7:::

打包配置文件并上传

tar -zcvf - etc | openssl aes-256-cbc -pbkdf2 -k $CmDc#RaX30O0M@\!$ -out cfg_export_config_file_new.conf

cygwin这里会报错

tar: 由于前次错误,将以上次的错误状态退出

所以还是推荐 WSL 或者虚拟机

上传就是上边备份界面,然后等 90S 就可以 SSH 登录了。

连接 SSH

Dropbear 是不支持 SFTP 协议的,后面下载文件不方便。所以得用支持 SCP 协议的 SSH 客户端,比如 MobaXterm,方便后面下载备份。

RAX3000M_新建SSH连接RAX3000M_新建SSH连接

完整备份固件

玩路由,玩机的第二步永远是备份原厂固件。

推荐使用 MobaXterm 连接 SSH。

检查分区表

root@RAX3000M:~# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 08000000 00020000 "spi0.0"
mtd1: 00100000 00020000 "BL2"
mtd2: 00080000 00020000 "u-boot-env"
mtd3: 00200000 00020000 "Factory"
mtd4: 00200000 00020000 "FIP"
mtd5: 03d00000 00020000 "ubi"
mtd6: 02500000 00020000 "plugins"
mtd7: 00800000 00020000 "fwk"
mtd8: 00800000 00020000 "fwk2"

如果你的分区表和我的不一样就别操作了。

备份第一个分区

第一个分区有点大,备份完后先下载,然后清理腾出空间

dd if=/dev/mtd0 | gzip >/tmp/mtd0_spi0.0.bin.gz

然后下载备份,MobaXterm 左侧切换到/tmp目录,然后右键备份文件点击Download

RAX3000M_下载备份RAX3000M_下载备份

删除备份

rm /tmp/mtd0_spi0.0.bin.gz

然后备份其他,步骤我就不过多赘述了

dd if=/dev/mtd1 of=/tmp/mtd1_BL2.bin
dd if=/dev/mtd2 of=/tmp/mtd2_u-boot-env.bin
dd if=/dev/mtd3 of=/tmp/mtd3_Factory.bin
dd if=/dev/mtd4 of=/tmp/mtd4_mtd4_FIP.bin
dd if=/dev/mtd5 of=/tmp/mtd5_ubi.bin
dd if=/dev/mtd6 of=/tmp/mtd6_plugins.bin
dd if=/dev/mtd7 of=/tmp/mtd7_fwk.bin
dd if=/dev/mtd8 of=/tmp/mtd8_fwk2.bin

刷写 uboot

先去下载

[x-link url="https://github.com/hanwckf/bl-mt798x/releases" title="Hanwckf MT7981/7986 Ubbot"/]

下载后把mt7981_cmcc_rax3000m-fip-fixed-parts.bin解压出来,不要看错了。

RAX3000M_解压 ubootRAX3000M_解压 uboot

然后上传到 RAX3000M 的 /tmp 目录下

RAX3000M_上传ubootRAX3000M_上传uboot

然后就可以执行命令刷入 uboot 了

mtd write mt7981_cmcc_rax3000m-fip-fixed-parts.bin FIP

RAX3000M_刷入ubootRAX3000M_刷入uboot

刷机

刷完uboot后第一次重启会自动进入刷机模式,如果不是第一次,长按reset按钮同时接入电源,保持长按reset按钮5到10秒即可计入刷机模式。

刷机的时候要把电脑设置为 192.168.1 段的 IP 比如 192.168.1.2