百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分析 > 正文

【干货】Fiddler 常用功能介绍一(收藏)

liebian365 2024-11-08 13:58 27 浏览 0 评论

本文介绍在工作中常用的技能功能,具体得参考最新软件为主,建议可以打开软件对比,具体功能得日常使用中常用才会牢记。

一些常用技能,分享如下(后续继续分享):

1、Fiddler清空Web Sessions列表

方法有下列四种:

QuickExec输入cls

CTRL+X

CTRL+A 再del

工具栏X ->Remove all

2、Fiddler屏蔽Tunnel to 请求

菜单栏Rules->Hide CONNECTS,直接屏蔽Tunnel to

关于http tunnne介绍

对象(包含两部分):

(1)、server端程序;

(2)、client端程序;

如果服务器不支持http tunnel,那么就需要安装http tunnel server端的程序,客户端不支持http tunnel,那么客户端就需要安装http tunnel client程序。


前提:

(1)、在受限制的网络环境中(防火墙、NAT、代理器);

(2)、客户端无法直接访问某些网络;

一般情况下,由于http tunnnel可控性不强,所以,服务器通常会限制”可connect的端口”(一般只开放SSL的443端口)。


原理,以访问百度为例:

因为fiddler作为代理,在访问百度网页时(使用了https协议),满足了connect条件,所以客户端会使用connect方法和目标服务器建立http tunnel,connection建立完成,后续fiddler会转发、接收所有的tcp stream,所以访问 https://www.baidu.com 之前出现了tunnel to www.baidu.com:443。

connect 为了建立http tunnel,connect是http众多方法中的其中一种,它跟post、get、put、options方法是并列的。

3、Fiddler指定抓取程序Any Process

Any Process/pick target...:任何你要监听的进程(程序),精准定位。

当点击上面的Any Process图标并将其移动到指定浏览器页面(或者其他程序界面)后,会单独记录这个页面的通信情况,只能监听一个程序,再点击一次把心图标,则取消监听。

使用后,如下显示,可以通过windwos 的任务管理器看到。

思考:如何用Fiddler指定抓取多个程序Any Process?

4、Fiddler查看QuickExec限制请求

使用bpu www.baidu.com之后,连接是限制请求了,在命令行重新输入bpu会自动匹配。

思考:是否有其他方式查看?

5、Fiddler抓取HTTPS数据

第一步:如果是Fiddler证书有问题,可以通过重置,然后获取。

先打开Tools->Options->HTTPS,勾选上Capture HTTPS CONNECTs和Decrypt HTTPS traffic,再Actions>>Reset All Certificates(后续看提示操作)

第二步:信任根证书HTTPS>>Actions>>Trust Root Certificate

第三步:重启fiddler

第四步:如果还不抓取HTTPS的请求,则可以把Fiddler的证书导出来,直接导入到浏览器去。

第五步:以谷歌浏览器为例,打开浏览器,进入设置页面,点击【隐私和安全】->【安全】->【管理证书】->【受信任的根证书颁发机构】->【导入】。

第六步:找到刚才导出的Fiddler证书,导入到浏览器中去。

第七步:再Actions>>Reset All Certificates,如不行,再重启Fiddler。

思考:证书是如何工作的及原理?电脑端应用程序HTTPS的如何抓包?

6、Fiddler抓WebSocket协议

打开Fiddler,点开菜单栏的Rules > Customize Rules...

在class Handlers中加入以下代码

static function OnWebSocketMessage(oMsg: WebSocketMessage) {

// Log Message to the LOG tab

FiddlerApplication.Log.LogString(oMsg.ToString());

}

保存后就可以在Fiddler右边栏的Log标签里,看到WebSocket的数据包。

7、Fidder增加Web Sessions列表的列

有两种方法,可共大家参考,一种是靠代码,一种是界面操作,分别如下:

(1)、Fiddler增加一列查看接口响应时间Time Taken,class Handlers添加。

打开Fiddler,点开菜单栏的Rules > Customize Rules...

在class Handlers中加入以下代码:

function BeginRequestTime(oS: Session){

if (oS.Timers != null)

{ return oS.Timers.ClientBeginRequest.ToString();

} return String.Empty;

}

public static BindUIColumn("Time Taken")

function CalcTimingCol(oS: Session){

var sResult = String.Empty;

if ((oS.Timers.ServerDoneResponse > oS.Timers.ClientDoneRequest))

{sResult = (oS.Timers.ServerDoneResponse - oS.Timers.ClientDoneRequest).ToString();

} return sResult;

}

重启Fiddler就可以了

(2)、Fiddler增加一列,增加requestmethod,右键添加。

刚开始是默认没有RequestMethod这一列的

添加步骤:

1、在该横栏的空白处右键,如图

2、选择Customize colimns,会跳转如下:

3、出来窗口,在cllection里选择最后的Miscellaneous,在field name处选择 RequestMethod

4、直接点击【Add】,即可添加成功。

8、Fiddler模拟慢网速/弱网

主要有以下几种方法:

方法一:CustomizeRule修改代码

Rules—>CustomizeRule,搜索“request-trickle-delay/m_SimulateModem”(每上传/下载1KB)

if (m_SimulateModem) {

// Delay sends by 300ms per KB uploaded.

oSession["request-trickle-delay"] = "300";

// Delay receives by 150ms per KB downloaded.

oSession["response-trickle-delay"] = "150";

}

request-trickle-delay代表每KB的数据被上传时会被延时多少毫秒

response-trickle-delay则对应下载时每KB的数据会被延时多少毫秒

注意:Rules—>Performances—>Simulate Modem Speeds勾选后以上设置才会生效。

方法二:winform表单来为插件开发界面

可以使用c#类库项目,引用fiddler的Inspector的插件对象,继承IAutoTamper类,重载onload方法与AutoTamperRequestBefore方法。

Onload:是fiddler在装载此插件时回调的方法,AutoTamperRequestBefore与fiddlerscript的onbeforerequest回调事件功能相同,都可以在request前请求自定义逻辑。

通过winform表单来为插件开发界面,再通过用户配置的下载速度与上传速度来推算出下载每kb/s与上传每kb/s所delay的时间。

从而调用与fiddlerscirpt同样实现的接口

oSession["request-trickle-delay"] = [delay time];

oSession["response-trickle-delay"] = [delay time];

注意:下载Willow的地址:http://qzonetouch.github.io/commonWidget/willow

方法三:思考:是否有其他的方法?

相关推荐

“版本末期”了?下周平衡补丁!国服最强5套牌!上分首选

明天,酒馆战棋就将迎来大更新,也聊了很多天战棋相关的内容了,趁此机会,给兄弟们穿插一篇构筑模式的卡组推荐!老规矩,我们先来看10职业胜率。目前10职业胜率排名与一周前基本类似,没有太多的变化。平衡补丁...

VS2017 C++ 程序报错“error C2065:“M_PI”: 未声明的标识符"

首先,程序中头文件的选择,要选择头文件,在文件中是没有对M_PI的定义的。选择:项目——>”XXX属性"——>配置属性——>C/C++——>预处理器——>预处理器定义,...

东营交警实名曝光一批酒驾人员名单 88人受处罚

齐鲁网·闪电新闻5月24日讯酒后驾驶是对自己和他人生命安全极不负责的行为,为守护大家的平安出行路,东营交警一直将酒驾作为重点打击对象。5月23日,东营交警公布最新一批饮酒、醉酒名单。对以下驾驶人醉酒...

Qt界面——搭配QCustomPlot(qt platform)

这是我第一个使用QCustomPlot控件的上位机,通过串口精确的5ms发送一次数据,再将读取的数据绘制到图表中。界面方面,尝试卡片式设计,外加QSS简单的配了个色。QCustomPlot官网:Qt...

大话西游2分享赢取种族坐骑手办!PK趣闻录由你书写

老友相聚,仗剑江湖!《大话西游2》2021全民PK季4月激燃打响,各PK玩法鏖战齐开,零门槛参与热情高涨。PK季期间,不仅各种玩法奖励丰厚,参与PK趣闻录活动,投稿自己在PK季遇到的趣事,还有机会带走...

测试谷歌VS Code AI 编程插件 Gemini Code Assist

用ClaudeSonnet3.7的天气测试编码,让谷歌VSCodeAI编程插件GeminiCodeAssist自动编程。生成的文件在浏览器中的效果如下:(附源代码)VSCode...

顾爷想知道第4.5期 国服便利性到底需优化啥?

前段时间DNF国服推出了名为“阿拉德B计划”的系列改版计划,截至目前我们已经看到了两项实装。不过关于便利性上,国服似乎还有很多路要走。自从顾爷回归DNF以来,几乎每天都在跟我抱怨关于DNF里面各种各样...

掌握Visual Studio项目配置【基础篇】

1.前言VisualStudio是Windows上最常用的C++集成开发环境之一,简称VS。VS功能十分强大,对应的,其配置系统较为复杂。不管是对于初学者还是有一定开发经验的开发者来说,捋清楚VS...

还嫌LED驱动设计套路深?那就来看看这篇文章吧

随着LED在各个领域的不同应用需求,LED驱动电路也在不断进步和发展。本文从LED的特性入手,推导出适合LED的电源驱动类型,再进一步介绍各类LED驱动设计。设计必读:LED四个关键特性特性一:非线...

Visual Studio Community 2022(VS2022)安装图文方法

直接上步骤:1,首先可以下载安装一个VisualStudio安装器,叫做VisualStudioinstaller。这个安装文件很小,很快就安装完成了。2,打开VisualStudioins...

Qt添加MSVC构建套件的方法(qt添加c++11)

前言有些时候,在Windows下因为某些需求需要使用MSVC编译器对程序进行编译,假设我们安装Qt的时候又只是安装了MingW构建套件,那么此时我们该如何给现有的Qt添加一个MSVC构建套件呢?本文以...

Qt为什么站稳c++GUI的top1(qt c)

为什么现在QT越来越成为c++界面编程的第一选择,从事QT编程多年,在这之前做C++界面都是基于MFC。当时为什么会从MFC转到QT?主要原因是MFC开发界面想做得好看一些十分困难,引用第三方基于MF...

qt开发IDE应该选择VS还是qt creator

如果一个公司选择了qt来开发自己的产品,在面临IDE的选择时会出现vs或者qtcreator,选择qt的IDE需要结合产品需求、部署平台、项目定位、程序猿本身和公司战略,因为大的软件产品需要明确IDE...

Qt 5.14.2超详细安装教程,不会来打我

Qt简介Qt(官方发音[kju:t],音同cute)是一个跨平台的C++开库,主要用来开发图形用户界面(GraphicalUserInterface,GUI)程序。Qt是纯C++开...

Cygwin配置与使用(四)——VI字体和颜色的配置

简介:VI的操作模式,基本上VI可以分为三种状态,分别是命令模式(commandmode)、插入模式(Insertmode)和底行模式(lastlinemode),各模式的功能区分如下:1)...

取消回复欢迎 发表评论: