【干货】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)...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- “版本末期”了?下周平衡补丁!国服最强5套牌!上分首选
- VS2017 C++ 程序报错“error C2065:“M_PI”: 未声明的标识符"
- 东营交警实名曝光一批酒驾人员名单 88人受处罚
- Qt界面——搭配QCustomPlot(qt platform)
- 大话西游2分享赢取种族坐骑手办!PK趣闻录由你书写
- 测试谷歌VS Code AI 编程插件 Gemini Code Assist
- 顾爷想知道第4.5期 国服便利性到底需优化啥?
- 掌握Visual Studio项目配置【基础篇】
- 还嫌LED驱动设计套路深?那就来看看这篇文章吧
- Visual Studio Community 2022(VS2022)安装图文方法
- 标签列表
-
- wireshark怎么抓包 (75)
- qt sleep (64)
- cs1.6指令代码大全 (55)
- factory-method (60)
- sqlite3_bind_blob (52)
- hibernate update (63)
- c++ base64 (70)
- nc 命令 (52)
- wm_close (51)
- epollin (51)
- sqlca.sqlcode (57)
- lua ipairs (60)
- tv_usec (64)
- 命令行进入文件夹 (53)
- postgresql array (57)
- statfs函数 (57)
- .project文件 (54)
- lua require (56)
- for_each (67)
- c#工厂模式 (57)
- wxsqlite3 (66)
- dmesg -c (58)
- fopen参数 (53)
- tar -zxvf -c (55)
- 速递查询 (52)