巧用Fiddler開啟運營商定製版路由器被閹割的功能,免去刷公版韌體的風險

什麼都看不懂發表於2023-01-09

前言:

三大運營商都有自己的定製版路由器,一般會在自家營銷活動中作為贈品送給使用者

正巧我家裡就有兩臺電信定製版的華為路由器,都是這兩年雙十一在某寶上買寬頻時送的

兩臺路由器型號分別是TC7001和TC7102,分別對應華為官方公版路由器型號是AX2和AX3

這兩臺在我家裡都是作為從路由使用的,增強下全屋的wifi訊號僅此而已

巧用Fiddler開啟運營商定製版路由器被閹割的功能,免去刷公版韌體的風險

 

1. 路由器刷成磚了

這兩路由器當時到手的時候,我直接用手機把它們設定為家裡的從路由了,所以管理後臺我都還沒仔細看過  <-- 請先注意這句話

晚上閒著無聊開啟路由器的後臺看了一下,發現定製版的路由器閹割掉了很多功能,只有最基礎的wifi設定和一些基礎資訊設定的功能,完全沒有可玩性

我就在網上找了找,看有沒有什麼第三方韌體可以刷一刷擴充套件下功能,發現這兩臺華為路由器雖然不能刷第三方的韌體,但是可以刷成公版韌體,至少能變成一臺功能齊全的路由器

於是找到了TC7102的公版AX3的韌體,雖然教程寫著不明不白,不管三七二十一了,韌體版本對的上我就直接下載過來開始刷韌體

韌體刷完後發現,路由器的wifi訊號沒了,而且後臺管理介面的預設密碼也變了,不是機身背後的初始密碼,這不等於啥也幹不了,跟一臺磚頭沒差!!!??

隨後上網找了找,發現很多人都有這個問題,剛好這一款路由器的電信定製版刷成公版路由是有風險和特別注意事項的,一開始看的教程裡都沒提到

找了好久的解決辦法,奈何定製版算是冷門款,網上資訊太少了,但可以判斷出來這路由基本是廢了,得拆機燒韌體,要找售後解決了

巧用Fiddler開啟運營商定製版路由器被閹割的功能,免去刷公版韌體的風險

 

2. 嘗試找到隱藏功能入口

我就想著,大家都喜歡刷公版,不就是因為功能太少了,而定製版會不會並沒有刪除功能,只是把功能入口隱藏掉了???

隨後我就開啟另一臺路由器的後臺,都一個品牌嘛,後臺跟剛才那臺是一模一樣的,可以看到有些選單是灰掉的

1. 先從html原始碼上入手,按F12開啟瀏覽器除錯工具,找到灰掉的按鈕元素,把元素上的disabled屬性去掉,css也嘗試修改一下,發現點選了沒反應,說明這事沒這麼簡單

2. 接著發現他們的後臺頁面是用vue寫的,並且點選那幾個可用的選單時,url上的路由跟dom上的id是一一對應的,那麼可以確定點選事件就是用vue路由控制的,我們就可以從js原始碼入手,透過id去搜尋對應的路由控制程式碼

巧用Fiddler開啟運營商定製版路由器被閹割的功能,免去刷公版韌體的風險

3. 透過搜尋其中一個被禁用的選單id:internet,我在網頁載入的資源中找到了一個名為router.js的檔案,裡面配置了很多頁面的路由,以及每個路由需要的依賴引用和屬性,而且透過路由命名都可以猜到是什麼功能,並且路由數量是遠遠超過網頁上可見的頁面入口數量,我就隨便找一個頁面上沒有的功能,在url上直接修改,回車後發現沒反應,有的甚至會跳回首頁,那這裡一定是有什麼邏輯在過濾這些路由

巧用Fiddler開啟運營商定製版路由器被閹割的功能,免去刷公版韌體的風險

4. 很快我再透過一番搜尋,在一個名為main.js裡發現了一段註釋寫著白名單控制的方法,程式碼裡清清楚楚的寫著如何判斷白名單,雖然不能完全看懂某些組合條件是什麼意思,但是可以大概判斷出來程式碼是透過一個叫 isRepeater 、meta.repeater 的屬性,以及 isBridgemeta.bridage 這個'或'條件去判斷的

巧用Fiddler開啟運營商定製版路由器被閹割的功能,免去刷公版韌體的風險

5. meta.repeatermeta.bridge 這兩個屬性剛才在router.js裡,我已經看到過幾次,分外的眼熟,回到router.js中,可以發現很多不可見的頁面路由恰巧都設定了這兩個屬性,真相大白了!

巧用Fiddler開啟運營商定製版路由器被閹割的功能,免去刷公版韌體的風險

 

3. 利用Fiddler去替換掉JS的響應內容

1. 我們先把router.js這個檔案下載到本機,用編輯器開啟這個js,把路由包含 repeater: truebridge: true 的meta屬性都刪了,注意json格式別搞亂了,然後儲存

巧用Fiddler開啟運營商定製版路由器被閹割的功能,免去刷公版韌體的風險

2. 開啟Fiddler開始抓包,重新整理一下路由器的後臺介面,在Fiddler中找到router.js,並把這個響應拖到右側的AutoResponder中,接著選中這個響應,並指向到剛才我們本機上修改過的router.js,最後開啟 Enable rules

巧用Fiddler開啟運營商定製版路由器被閹割的功能,免去刷公版韌體的風險

3. 我們再重新整理下網頁,並手動修改url上的路由,隨便挑一個隱藏路由即可,發現隱藏頁面成功展示出來了,並且裡面的各種設定都是能正常工作的,大功告成!!!

4. 有少量路由開啟還是沒反應的,結合路由的配置和網頁載入資源可以判斷出,某些路由依賴的js並不存在,說明開發者還是確確實實刪了一點點的功能

5. 當然你也可以修改main.js中那段白名單的控制邏輯,用一樣的套路實現效果

巧用Fiddler開啟運營商定製版路由器被閹割的功能,免去刷公版韌體的風險

巧用Fiddler開啟運營商定製版路由器被閹割的功能,免去刷公版韌體的風險

 

反轉來了...

當我開啟路由頁面/internet,也就上圖中頂部第二個灰色選單,頁面上顯示 上網方式:Bridge(AP),再想到程式碼中關於白名單的條件有2個變數叫 isBridgemeta.bridge

我其實已經有點猜到是什麼情況:Bridge模式下,開發者故意隱藏掉這些選單,因為橋接模式的閘道器控制權已經全權交給主路由了,所以從路由沒必須再顯示這些功能

前面我也說了,這兩個路由器一到手,我直接用手機進入路由器初始化流程,把他們設為從路由器,沒機會看過它們的後臺是長什麼樣的

而我這一次進後臺,它們已經處於橋接模式了,導致我一直以為是因為定製版的原因這些功能才被閹割掉的

隨後我就重置了路由器,設為正常的路由模式,果然所有選單都正常顯示出來了,搞了半天是一個烏龍事件....

 

結:

雖然這是一個烏龍教程,但是萬一其他品牌的運營商定製版韌體確實有隱藏了功能,並且是使用前後端分離的形式去做,也可以透過這樣的方式去摸索,這篇教程能起到一點點的參考意義吧

路由器刷公版韌體和第三方韌體有風險,網上教程一定要先看完整,甚至可以多找幾份教程對比,再刷一些使用者的評論看看反饋再進行操作,像我這樣操作不當就直接刷成磚,路由器廢掉只能走售後,花費的時間成本更大

以上教程僅針對華為路由器的管理後臺,其他品牌的後臺大機率不適用,請自行研究

 

該文為部落格園版本

原創作者:Harry

原文出處:https://www.cnblogs.com/simendancer/articles/17033944.html

相關文章