【抓包】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);
}
}