【抓包】Fidder Script自动修改包

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);
        }
    }

posted @ 2024-09-11 11:35  idealy233  阅读(57)  评论(0编辑  收藏  举报