記一次Fidder Script自動修改包

idealy233發表於2024-09-11

Fiddler Script的本質是用JScript.NET編寫的一個指令碼檔案CustomRules.js
但是它的語法很像C#但又有些不一樣,比如不能使用@符號

透過修改CustomRules.js可以靈活修改請求報文和響應報文,也無需中斷程式。同時也可以利用它針對不同的URL做各種特殊處理。

Fiddler安裝時已經自帶了Fiddler ScriptEditor,可檢視包含的各類變數和方法,十分方便。

下面是我針對於op的概覽頁面,使用正則替換了其中的溫度資料的程式碼。

static function OnBeforeResponse(oSession: Session) {
        if (oSession.uriContains("openwrt.com") )
        {
            // 獲取響應體
            var responseBody = oSession.GetResponseBodyAsString();
            // 建立隨機數生成器
            var random = new System.Random();
            // 生成 0.0 到 1.0 之間的隨機小數
            var randomDouble = random.NextDouble();
            // 將隨機小數調整到 -10.0 到 -8.0 的範圍
            // -10.0 + (2.0 * randomDouble) 將隨機數縮放到 -10.0 到 -8.0
            var randomNumber = -10.0 + (2.0 * randomDouble);
            // 列印日誌響應體
            FiddlerApplication.Log.LogString("responseBody: " + "[\\S]*℃");
            // 進行正規表示式替換
            // 在 C# 中使用 System.Text.RegularExpressions.Regex
            var regex = new System.Text.RegularExpressions.Regex("[\\S]*℃");
            responseBody = regex.Replace(responseBody, randomNumber.ToString("F1") + "℃");
            // 將修改後的內容寫回響應體
            oSession.utilSetResponseBody(responseBody);
        }
    }

相關文章