移动光猫修改 Wifi 名称时必须以 CMCC- 开头,如何绕过这个限制?

1,582 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第3天,点击查看活动详情

在修改移动光猫的 Wifi 名称时,如果 Wifi 名称不是以 CMCC- 开头,在想要点击“立即生效”保存设置时,页面会提示:“无线名称必须以 CMCC- 开头,请重新设置无线名称”。导致无法修改成功。

修改 WIFI 名称报错

一、解决方式

先说解决方式,待会再介绍原理。

在网页点击右键 -> 检查,再点击 Console 控制台,输入以下代码:

pageCheckValue =  function (){return true;}

Console 中输入代码

然后关掉检查页面,再点击“立即生效”按钮就不会报错了。

修改成功

比如这里可以看出,Wifi 名称成功被修改成了以 S 开头。

二、原理

这是什么原理呢?

我们可以猜测,在点击“立即生效”按钮时,页面会做一些检查。如果发现新 Wifi 名称不是以 CMCC- 开头的,就会报这个错误。

所以我们需要做的是:找到这个检查的函数,再将这个函数修改掉,去掉这个限制。

2.1 寻找检查函数

在检查页面,点击检查窗口左上角的小箭头,再点击页面的“立即生效”按钮,查看这个按钮对应的代码:

查看按钮

可以看到,这个按钮点击后调用了 wifi_user_pass_change() 方法,在 Elements 页面点击 Ctrl + F 打开搜索框,输入 wifi_user_pass_change() 搜索这个方法:

搜索点击事件

可以看到这个函数调用了 pageCheckValue 函数,再搜一下 pageCheckValue 函数的实现(实际上这个函数就在上一个函数的下面):

搜索检查函数

可以看到 pageCheckValue 函数中做了一些检查,正是在这个函数中检查了前缀是否为 "CMCC-"。

2.2 修改检查函数

定位到了限制 "CMCC-" 开头的函数,我们将这个函数修改掉就可以了。

所以我们在 console 中输入:

pageCheckValue =  function (){return true;}

的目的就是将 pageCheckValue 函数修改为直接通过,不做任何检查。