Fiddler入门:下载、安装、配置、抓包、customize rules

一、fiddler下载安装
安装包下载链接:https://www.telerik.com/download/fiddler

随便选个用途,填写邮箱,地区选择China,勾选“I accept the Fiddler End User License Agreement”,点击“DownLoad for windows”,下载。

双击FiddlerSetup.exe安装fiddler,可以选择常用的、不那么深的一个路径。

在安装路径下,双击Fiddler.exe,能打开,说明安装成功,可以给Fiddler.exe创建一个桌面快捷方式。

二、fiddler配置
双击Fiddler.exe,弹出“AppContainer Configuration”对话框,点击“cancel”就行。

Progress Telerik Fiddler Web Debugger菜单栏中,Tools——Options。

在这里插入图片描述
在这里插入图片描述

2-1.HTTPS配置
HTTPS的配置如下:
在这里插入图片描述
勾选Capture HTTPS CONNECTs、Decrypt HTTPS traffic、Ignore server certificate errors(unsafe)。在这里插入图片描述

点击OK保存。

弹出对话框“SCARY TEXT AHEAD:Read Carefully!”,点击YES。

弹出对话框“安全警告”,询问是否安装证书,点击是。

弹出对话框“Add certificate to the Machine Root List?”,点击YES。

弹出对话框“TrustCert Success”,点击确定。

再点击一下options中的ok,以防忘记保存配置。

Decrypt HTTPS traffic中的选项说明:

from all processes : 
抓取所有的 https 程序, 包括电脑程序和手机APP。
from browsers only : 
只抓取浏览器中的https请求。
from non-browsers only : 
只抓取除了浏览器之外的所有https请求。
from remote clients only:
只抓取远程的客户端的https请求,就是只抓取手机APP上的https请求。

注意事项:

如果HTTPS请求出问题,例如,浏览器提示“您的链接不是私密链接”等,一般都是证书安装有问题,重新安装一遍证书,重复一遍HTTPS配置即可。

Options——HTTPS——Actions——Trust Root Certificate。
在这里插入图片描述

2-2.Connections配置
Fiddler listens on port,确保fiddler的端口为8888。

勾选Allow remote computers to connect。

弹出对话框“Enabling Remote Access”对话框,点击确定。
在这里插入图片描述

点击OK。

2-3.Scripting
自定义脚本语言设置,可以选择C#或者http://Jscript.NET。

在这里插入图片描述

三、解决fiddler自动关闭
人行征信密码控件会导致fiddler经常自动停止,并提示:

在这里插入图片描述

在控制面板,卸载人行征信安全控件。

删除C:\Windows\Prefetch路径下PBCCR开头的.pf文件。

在这里插入图片描述

删除C:\Windows\SysWOW64下面的PBCCRCNew文件夹。

重新启动Fiddler.exe。

四、抓包
3-1.电脑
电脑端的网络请求,可以直接在fiddler中看到效果。

3-2.小程序
打开微信PC端,进入小程序面板,选择小程序。就可以在fiddler中看到小程序的网络请求了。

3-3.APP
一般APP都有web端主页,也有微信小程序,所以APP的网络请求可以通过web端主页看,或者通过小程序看。

如果一定要通过远程客户端的形式,抓包APP的网络请求,可参见APP抓包设置:

https://blog.csdn.net/qq_39720249/article/details/81069929

其中“三、APP抓包时的手机代理设置”写得很详细。

五、自定义规则

有时候需要把响应数据过滤保存,就需要写fiddler脚本了。

快捷键ctrl+r,或者菜单栏——Rules——Customize Rules,打开规则脚本编辑器,Fiddler ScriptEditor。

Go中,可以定位到不同方法,OnBeforeRequest、OnBeforeResponse等。

在这里插入图片描述

5-1.一些常用的oSession函数和方法


// 请求hostoSession.host == "my.test.com";// 请求host之后的url是否包含oSession.url.Contains("/feed") ;// 获取响应内容的字符串var logContent = oSession.GetResponseBodyAsString(); // 创建写入流var sw : System.IO.StreamWriter; 
if (System.IO.File.Exists(filename)){  //是否有该文件夹  sw = System.IO.File.AppendText(filename);   //有添加sw.Write(logContent);  
}  
else{  sw = System.IO.File.CreateText(filename);  //没有创建sw.Write(logContent);  
}  
sw.Close();  //关闭写入流
sw.Dispose();  //销毁写入流// 修改session中的显示样式oSession["ui-color"] = "orange";// 移除http头部中的MQB-X5-Referer字段oSession.oRequest.headers.Remove("MQB-X5-Referer");// 修改http头部中的Cache-Control字段oSession.oRequest["Cache-Control"] = "no-cache";// 修改hostoSession.host = "example.domain"; // 修改Origin字段oSession.oRequest["Origin"] = "http://domain";// 删除所有的cookieoSession.oRequest.headers.Remove("Cookie");// 新建cookieoSession.oRequest.headers.Add("Cookie", "username=cookiename;");// 修改Referer字段oSession.oRequest["Referer"] = "https://yoururl";// 获取Request中的body字符串var strBody=oSession.GetRequestBodyAsString();// 用正则表达式或者replace方法去修改stringstrBody=strBody.replace("aaaa","bbbbbb");// 将修改后的body,重新写回Request中oSession.utilSetRequestBody(strBody);
// 判断连接中是否包含字符串str
oSession.uriContains(str)
// 给连接请求添加一个字段TEST
oSession.oRequest["TEST"]="TEST NEW Request";

5-2. 定义规则保存网络请求

下面这段代码,可以将将响应数据筛选出来,存储在txt文本中。

其中判断请求url中是否包含路径是oSession.fullUrl.Contains方法,将字符串转为json的是Fiddler.WebFormats.JSON.JsonDecode(response_body)方法,获取对象中的json是response_json.JSONObject方法,打印日志是FiddlerApplication.Log.LogString(video_name)方法。

static var video_name: String = "";
static function OnBeforeResponse(oSession: Session) {if (m_Hide304s && oSession.responseCode == 304) {oSession["ui-hide"] = "true";}//过滤无关请求,只关注特定请求if (oSession.fullUrl.Contains("/burdock/weixin")) {//消除保存的请求可能存在乱码的情况oSession.utilDecodeResponse();var fso;var file;var response_code;var response_body;var response_json;response_code = oSession.responseCode;response_body = oSession.GetResponseBodyAsString();fso = new ActiveXObject("Scripting.FileSystemObject");response_json = Fiddler.WebFormats.JSON.JsonDecode(response_body);if (response_code == 200){if (oSession.fullUrl.Contains("user")){if (response_json.JSONObject["data"] == "System.Collections.ArrayList"){var title = response_json.JSONObject["data"][0]["user"]["nickname"];file = fso.OpenTextFile("D:\\视频\\" + title + ".txt",8 ,true, true);file.writeLine(response_body);file.writeLine("\n");file.close();FiddlerApplication.Log.LogString(title);}					}else if (oSession.fullUrl.Contains("note") && oSession.fullUrl.Contains("single_feed")){video_name = response_json.JSONObject["data"]["title"];file = fso.OpenTextFile("D:\\视频\\" + video_name + ".txt",8 ,true, true);file.writeLine(response_body);file.writeLine("\n");file.close();FiddlerApplication.Log.LogString(video_name);}else {file = fso.OpenTextFile("D:\\视频\\" + video_name + ".txt",8 ,true, true);file.writeLine(response_body);file.writeLine("\n");file.close();FiddlerApplication.Log.LogString(video_name);}}}
}

六、总结
很全面详细的fiddler入门教程,如果觉得不错,请点赞。

更多内容可参阅fiddler官网:

https://www.telerik.com/fiddler

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/269934.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

element loading遮罩层添加按钮

<el-table v-loading"loadingText" element-loading-text"拼命加载中" :data"tableData" :tableColumn"tableColumn" :span-method"objectSpanMethod" border :cell-style"cellStyle" :header-cell-style"…

备考2024年小学生古诗文大会:历年真题15题练习和独家解析

如何提高小学生古诗词的知识&#xff1f;如何激发小学生古诗词的学习兴趣&#xff1f;如何提高小学古诗词的学习成绩&#xff1f;如何备考2024年小学生古诗文大会&#xff1f;...如果你也在关心和这些问题&#xff0c;我的建议是参加每年一度的小学生古诗词大会&#xff08;免费…

安卓类加载机制

目录 一、ClassLoader介绍二、双亲委托机制三、类的加载过程 一、ClassLoader介绍 任何一个 Java 程序都是由一个或多个 class 文件组成&#xff0c;在程序运行时&#xff0c;需要将 class 文件加载到 JVM 中才可以使用&#xff0c;负责加载这些 class 文件的就是 Java 的类加…

【深圳五兴科技】Java后端面经

本文目录 写在前面试题总览1、java集合2、创建线程的方式3、对spring的理解4、Spring Boot 和传统 Spring 框架的一些区别5、springboot如何解决循环依赖6、对mybatis的理解7、缓存三兄弟8、接口响应慢的处理思路9、http的状态码 写在前面 关于这个专栏&#xff1a; 本专栏记录…

iOS消息转发流程

当向Objc对象发送消息时&#xff0c;如果找到对象对应的方法&#xff0c;就会进入消息转发流程&#xff0c;给开发者提供一些最后的机会处理消息无法发送问题&#xff0c;以免出现程序崩溃。 1. 回调对象的resolveInstanceMethod方法&#xff0c;在这个方法中&#xff0c;允许开…

LeetCode 热题 100 | 图论(二)

目录 1 基础知识 1.1 什么是拓扑排序 1.2 如何进行拓扑排序 1.3 拓扑排序举例 2 207. 课程表 3 210. 课程表 II 菜鸟做题&#xff0c;语言是 C 1 基础知识 1.1 什么是拓扑排序 含义&#xff1a;根据节点之间的依赖关系来生成一个有序的序列。 应用&#xff1a…

Mybatis实现分页查询数据(代码实操讲解)

在MyBatis中实现分页查询的常见方式有两种&#xff1a;使用MyBatis内置的分页插件如PageHelper&#xff0c;或者手动编写分页的SQL语句。下面我将为你提供两种方式的示例代码。 使用PageHelper分页插件 首先&#xff0c;确保你的项目中已经添加了PageHelper的依赖。在Maven项…

gpt批量工具,gpt批量生成文章工具

GPT批量工具在今天的数字化时代扮演着越来越重要的角色&#xff0c;它们通过人工智能技术&#xff0c;可以自动批量生成各种类型的文章&#xff0c;为用户提供了便利和效率。本文将介绍5款不同的GPT批量工具&#xff0c;并介绍一款知名的147GPT生成工具&#xff0c;以及另外一款…

js SheetJS 合并表格导出到同一个excel中

最近有个需求,我在一个页面显示了4个表格, 然后合并导出到excel文件中 四个表,四个sheet,一个excel文件 最后导出时这样: 实现: 1,页面有个导出的checkbox,勾选则导出,不勾选不处理 2,在一个函数中,集中处理四个表数据获取,并将结果返回出来 //获取数据后返回为…

代码随想录算法训练营第三十四天| 860.柠檬水找零 、406.根据身高重建队列 、452. 用最少数量的箭引爆气球

文章目录 1.柠檬水找零2.根据身高重建队列3.用最少数量的箭引爆气球 1.柠檬水找零 在柠檬水摊上&#xff0c;每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品&#xff0c;&#xff08;按账单 bills 支付的顺序&#xff09;一次购买一杯。 每位顾客只买一杯柠檬水&#xf…

(四)关系模型之关系代数

4.1关系代数概述 基于集合&#xff0c;提供了一系列的关系代数操作&#xff1a;并、差、笛卡尔积(广义积)、 选择、投影和更名等基本操作以及交、 连接和关系除等扩展操作&#xff0c;是一种集合思维的操作语言。关系代数操作以一个或多个关系为输入&#xff0c;结果是一个新的…

食品加工生产污废水处理如何达标排放

食品加工行业作为一个重要的工业部门&#xff0c;在生产过程中产生大量的污废水。合理、高效地处理这些污废水&#xff0c;实现达标排放&#xff0c;是保护环境和促进可持续发展的重要举措。本文将探讨食品加工生产污废水处理的方法和措施&#xff0c;以达到达标排放的目标。 首…

FreeRTOS操作系统学习——内存管理

C库函数与FreeRTOS内存管理区别 在C语言的库函数中&#xff0c;有mallc、free等函数可以申请以及释放内存空间&#xff0c;那么这为什么不适用于FreeRTOS的内存管理呢&#xff1f; 不适合用在资源紧缺的嵌入式系统中这些函数的实现过于复杂、占据的代码空间太大并非线程安全的…

小黑长沙特种兵归来,身体比较虚弱的js逆向烧脑之路:招标网搜索数据获取

通过有道翻译逆向的初步尝试&#xff0c;这次尝试一下招标网的数据获取感觉轻松了许多!!加油小黑黑 寻找接口地址(通过响应部分&#xff0c;推断出该部分为搜索数据获取接口) 复制curl&#xff0c;构造Python请求信息 进入https://curlconverter.com/python/&#xff0c;通过c…

HarmonyOS创建项目和应用—设置数据处理位置

项目和应用介绍 关于项目 项目是资源、应用的组织实体。资源包括服务器、数据库、存储&#xff0c;以及您的应用、终端用户的数据等。在您使用部分服务时&#xff0c;您是数据的控制者&#xff0c;数据将按照您设置的数据处理位置来存储在指定区域。 通常&#xff0c;您不需…

HTTPS如何保证数据传输的安全性 以及CA签发证书验签

暴力输出&#xff1a; 越看会越深入&#xff0c;睡前难以想通&#xff0c;后深入研究。得之。 有问题 请留言。 ----------追求内心的富足与平和。日行一善。 亓苏姑娘

停止Tomcat服务的方式

运行脚本文件停止 运行Tomcat的bin目录中提供的停止服务的脚本文件 关闭命令 # sh方式 sh shutdown.sh# ./方式 ./shutdown.sh操作步骤 运行结束进程停止 查看Tomcat进程&#xff0c;获得进程id kill进程命令 # 执行命令结束进程 kill -9 65358 操作步骤 注意 kill命令是…

相机类型的分辨率长宽、靶面尺寸大小、像元大小汇总

镜头的靶面尺寸大于等于相机靶面尺寸。 相机的芯片长这样&#xff0c;绿色反光部分&#xff08;我的手忽略&#xff09;&#xff1a; 基本所有像素的相机的靶面大小都可以在这个表格里面找到。 镜头的靶面尺寸在镜头外表上可以找到&#xff0c;选型很重要&#xff01;

如何在2.2.1版Aduino IDE中开发ESP32

ESP32芯片集成了WIFI和蓝牙&#xff0c;而且关于生态也很不错&#xff0c;越来越多的学习者和开发者选择此类芯片&#xff0c;而不像用keil开发STM32或者51一样&#xff0c;ESP32虽然也有官方的ESP32-IDF开发软甲&#xff0c;但是经过我个人的实操体验&#xff0c;不适合小白或…

Blender和3ds Max哪个会是行业未来?

Blender和3ds Max都是很强大的三维建模和渲染软件&#xff0c;各有各的好处。选择哪个软件更好&#xff0c;要看你的需求、预算、技术水平以及行业趋势等因素。 Blender最大的优点是免费且开源&#xff0c;这对预算有限的个人和小团队来说很有吸引力。它有很多建模工具和功能&…