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

2023-11-16


前言

关于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实现选中响应完成自定义功能,具体想要实现的功能类型是千变万化的,就得根据自己的需要进行对应的代码编写。那么本次文章就到这里了,谢谢大家的浏览。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • 区块链节点和区块区别_什么是区块链技术?从头开始第4讲_维护区块链的网络和节点...

    维护区块链 网络和节点 区块链由对等网络维护 网络是彼此互连的节点集合 节点是单独的计算机 它们接收输入并对它们执行功能并提供输出 区块链使用一种称为 点对点网络 的特殊网络 该网络在参与者之间划分其整个工作负载 所有参与者都享有同等特权
  • 电池电量与电压的关系

    目前 2012 6 人们主要使用两种监测方法 1 电流积分 current integration 为基础 前者依据一种稳健的思想 即如果对所有电池的充 放电流进行积分 就可以得出剩余电量的大小 当电池刚充好电并且已知是完全充电时 使用电流
  • flutter http成功后回调的写法

    方法如下 获取用户档案解锁状态和个人信息 getUnLockUserInfoStatus int userID Function callBack 回调的方法 表示这个参数可写可不写 if userID 0 return RxHttp
  • 数据库设计与优化

    数据库设计与优化是一个相对复杂的话题 需要涉及到多个方面 包括数据库的基本概念 关系型数据库的设计 数据库优化技巧等 下面将按照逻辑顺序一步一步详细介绍 排版清晰易懂 希望对你有所帮助 数据库基础概念 什么是数据库 数据库是一个有组织 有结
  • 100天精通Python(数据分析篇)——第73天:Pandas文本数据处理方法之查找、替换、拼接、正则、虚拟变量

    文章目录 每篇前言 一 Python字符串内置方法 1 文本查找 2 文本替换 3 文本拼接 4 正则提取 二 Pandas实现文本查找 1 str startswith 字符串 2 str endswith 字符串 3 str index
  • java.lang.IllegalStateException: Failed to load property source

    java lang IllegalStateException Failed to load property source from file H codes20210804 nacos demo provider target clas
  • Mybatis-plus中BaseMapper具体方法说明

    一 BaseMapper方法详解 1 Insert 插入一条记录 int insert T entity 2 Delete 根据 entity 条件 删除记录 int delete Param Constants WRAPPER Wrapp
  • NVIDIA-SMI系列命令总结

    1 NVIDIA SMI介绍 nvidia smi简称NVSMI 提供监控GPU使用情况和更改GPU状态的功能 是一个跨平台工具 它支持所有标准的NVIDIA驱动程序支持的Linux发行版以及从WindowsServer 2008 R2开始
  • 2024年java面试--mysql(4)

    系列文章目录 2024年java面试 一 spring篇 2024年java面试 二 spring篇 2024年java面试 三 spring篇 2024年java面试 四 spring篇 2024年java面试 集合篇 2024年java
  • Shopify商品置顶功能

    Shopify商品置顶功能 商品置顶功能描述 通过在商品列表页为链接添加参数的方法实现置顶某个或多个商品的功能 需按以下步骤将目标代码添加到目标位置 目标代码 assign handles assign handleSize 0 if cu
  • RabbitMQ启动没有端口号解决问题

    docker启动容器时报 Failed to create thread Operation not permitted 1 原因 docker内的用户权限受限 解决办法1 启动docker时加上参数 privileged true pri
  • 【空气检测仪专题】10.增加电池显示

    10 增加电池显示 增加了电池电量显示和充电电池动画 增加PM2 5传感器 并显示实时数据 效果如下图
  • Allegro 镜像丝印处理

    本文问题描述 Allegro 设计中丝印镜像了 在器件在正面 丝印也在正面 但是不管怎么 R 都转不过来 发现其实丝印已经被镜像至反面 可能也就需要简单左右镜像下 就可以了 如下图 艹作 在菜单栏点击view 选择Flip Design 点
  • PB(PowerBuilder)如何同消息队列(RabbitMQ)通讯

    参考文档 1 RabbitMQ入门 用途说明和深入理解 RabbitMQ入门 用途说明和深入理解 走错路的程序员的博客 CSDN博客 2 RabbitMQ进阶 管理 配置 RabbitMQ进阶 管理 配置 东孤熊猫的博客 CSDN博客 ap
  • Allegro16.6详细教程(四)

    2 PIN的定義 如果用第一種方式產生Netlist的話 就要對於一些Power pin加以定義 1 滑鼠點選想定義的零件 2 點選選單中Edit gt Part 3 用滑鼠點選想定義的Pin腳 4 點選功能表中Edit gt Proper
  • RCE 远程命令代码执行漏洞

    什么是REC Remote Command Code Execute 远程命令或者代码执行 通过构造特殊的字符串 将数据提交到WEB应用程序 并利用该方式外部程序或命令进行攻击 类似SQL注入 Web应用程序使用了一些可以执行系统命令 或者
  • DNS污染与DNS劫持

    先认识一下什么是DNS DNS 是域名系统 Domain Name System 的缩写 在Internet上域名与IP地址之间是一对一 或者多对一 的 域名虽然便于人们记忆 但机器之间只能互相认识IP地址 它们之间的转换工作称为域名解析
  • Linux 中的 chkconfig 命令及示例

    先决条件 Linux 中的运行级别 chkconfig命令用于列出所有可用的服务并查看或更新其运行级别设置 简而言之 它用于列出服务或任何特定服务的当前启动信息 更新服务的运行级别设置以及在管理中添加或删除服务 概要 chkconfig l
  • 小程序限制PC端打开 只可以在手机端打开的解决方案

    电脑版微信是支持运行小程序的 但是某一些小程序是限制在PC上打开的 那么是怎么判断打开的设备是否是Pc端呢 官方文档给出的方案是 wx getSystemInfo success res console log res model cons
  • 【Fiddler】利用FiddlerScript实现自制函数功能及一些基本实用函数。

    目录 前言 一 FiddlerScript是什么 二 代码部分 1 自定义功能函数名 2 实现Session的遍历 3 实现重发请求并选中新请求 4 常用FS函数 5 Fiddler中的延时器 总结 前言 关于FS Fiddler是我们熟悉