【Fiddler】利用FiddlerScript实现自制函数功能及一些基本实用函数。


前言

关于FS

Fiddler是我们熟悉的抓包软件,但FiddlerScript基础却少有人讲,这里我想简单的说一下利用FiddlerScript自制功能的方法。


FS功能实现

一、FiddlerScript是什么?

FiddlerScript是Fiddler提供的Jscript脚本,让我们在Fiddler的基础上扩展实现一些其他更强大的功能。本文主要介绍的是通过编写Fiddler的Jscript脚本的方法来实现Fiddler选中请求后实现自定义功能的拓展。本文未提及的内容大家也可以自行参考C#的相关代码。

二、代码部分

在介绍代码部分之前,我们要先把Session是什么弄明白,在我看来,他就是选中的请求响应,那么oSession: Session[]就是我们选中的一些请求所构成的数组。我们在学习时姑且这么认同,而事实上也差不多如此。接下来我们介绍具体代码。

1.自定义功能函数名

代码如下:

public static ContextAction("自定义功能")
    function Function_name(oSessions: Session[]) {
	//内部实现
    }

ContextAction为添加自定义功能名称,Function_name为自定义函数名。
前者是为了显示文字,而后者是为了Fiddler的函数引用,因此只有oSessions同一单一的输入参数时,不可重复命名该函数,即Function_name。


2.实现Session的遍历

代码如下:

if (oSessions.Length == 0) return;
//判断请求是否为空
for (var x:int = 0; x < oSessions.Length; x++)
{
    if()
    {
        var selected_1: Session = oSessions[x];         
    }
    else if()
    {
        var selected_2: Session = oSessions[x];
    }
}   

代码解释:
首先判断选中的请求是否为空,若为空则不进行接下来的操作。
for循环就是我们最基本的遍历手段,配合if判断语句,筛选出需要的Session,并将该Session信息赋予selected便于进行接下来需要完成的操作。


3.实现重发请求并选中新请求

代码如下:

var oSD = new System.Collections.Specialized.StringDictionary();
var res = FiddlerApplication.oProxy.SendRequestAndWait(selected.oRequest.headers, selected.RequestBody, oSD, null);

SendRequestAndWait是实现重发请求的函数,我们可以将其直接实现并赋值给res,也可以先单独重发请求,再赋值res,都是可以的。这里直接将其重发请求后的新请求赋值给了res。其中着重注意的部分为前两个参数。第一个参数为需要重发请求的header,第二个参数为需要重发请求的RequestBody。


4.常用FS函数

FiddlerObject.alert("显示内容");
//FIDDLER弹窗显示
FiddlerObject.prompt("内容提示","默认内容","窗口提示");
//FIDDLER输入参数,可用来赋值给变量
oSessions[x].fullUrl.Contains("TEXT");
//某请求的URL中是否含有TEXT,若有返回true,没有返回false
selected.GetResponseBodyAsString();
//获取请求的ResponseBody
selected.PathAndQuery
//仅获取响应的路径

函数实在是太多了,这里只是举例几个常用的,如果想要了解更多的可以通过Fiddler中的ClassView去查看自己想要的。


5.Fiddler中的延时器

C#中的延时函数为Thread.Sleep,但是这种函数是以暂停线程的方式来实现延时的,会造成程序的假死。而很多时候我们希望它是以一个多线程或是单线程不卡死的方式来完成延时,也就是不希望这个延时会导致程序的未响应。但我看网上几乎没有关于FS的延时函数实现内容,而且网上给出的C#不卡死延时函数直接CV到Fiddler上好像都是不能用的,那么这里我给出在FS上完美实现延时的代码。代码如下:

var TIMEWAIT = 1000;
//延时1000ms,也就是1s
var timestart = System.Environment.TickCount;
while((System.Environment.TickCount - timestart) < TIMEWAIT)
{
	Application.DoEvents();
} 

其中TIMEWAIT就是我们需要延时的时间,单位为ms。


总结

本文只是简单介绍了一下关于如何使用FiddleScript实现选中响应完成自定义功能,具体想要实现的功能类型是千变万化的,就得根据自己的需要进行对应的代码编写。那么本次文章就到这里了,谢谢大家的浏览。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值