介紹
當我們在研究某些網站如何運行時因為“一些原因”在我們打開控制台時總會陷入無限debug模式。
一般這種方式能防止用戶在瀏覽器中進行網站調試,限制的實現方式也很簡單通過js 定時器無限調用debug就可以了。
而我們使用的工具fiddler是一款常用的抓包軟件,功能十分強大。
原理是通過fiddler過濾掉debug部分代碼,使其debug無效。
開始實現
確認debug代碼位置
這里實驗網站隨意,首先要在瀏覽器里定位網站中debug代碼位置,在chrome瀏覽器控制台中點Sources,然后按 Ctrl + Shift + F 開始搜索關鍵字。
這里可以搜 debugger 或者 setInterval 可能搜索出來的結果不是唯一,需要我們自己根據代碼判斷下。
如果不好判斷可以格式化下代碼看看具體代碼確定位置。
這里我已經找到了代碼的位置,貌似將判斷和死循環去掉就可以了。
改去掉debug的代碼方法因為網站不同都不一樣,如果一次不行,建議多試幾次。
打開Fiddler檢測下是否能抓到該文件,如果刷新頁面該文件沒有出現在Fiddler中
檢測是否js靜態文件已經被瀏覽器緩存了,可以打開瀏覽器控制台中的Network 鈎上Disable cache
或者Fiddler沒有設置證書抓不到https網站,設置證書可以百度一下設置的方法很多。
在fiddler里面找到代碼,復制到本地的編輯器中修改。因為大多代碼都是被壓縮了,所以這里最好復制兩份。一份是原樣的還有一份是格式化的。(格式化后可能就不能運行了)
我們在格式化的代碼中修改(方便理解),修改后搜索原碼在相同的位置修改。
替換修改后的代碼
修改完代碼后就是最關鍵的代碼替換,這里我們需要把Fiddler開啟斷點,在Fiddler頂部菜單點擊 Rules - Automatic Breakpoints - After Responses 如下圖
打完斷點后,此時所有請求都會被Fiddler攔截。
瀏覽器刷新頁面,再在fiddler一步一步地允許文件發送,直到發現我們改的文件出現,此時將我們改的代碼復制進去再點 Run to Completion。
再打開瀏覽器將Netword - Disable cache 鈎去掉使瀏覽器保存我們改動的代碼到緩存(刷新不會失效)。
再取消Fiddler斷點(Rules - Automatic Breakpoints - Disabled),使其能正常請求數據。
此時我們已經去除了debug限制了。
當然這里去除debug代碼部分只是舉個例子,所以大家可以看情況而改,多試幾次一定能成功的。