Fiddler的一些日常使用

Fiddler作为windows开发必备的调试工具,会经常使用到,不过对于mac端使用只有官方一个残缺版本,对mac版Fiddler的使用尝试以及日常使用做个记录
当然Mac也可以直接使用收费版抓包工具 charles

Fiddler常用方法

记录一些Fiddler日常的使用

Fiddler 配置代理服务器

  1. 点击tools -> options -> connections
  2. 勾选下图选项
  3. 然后需要的设备保持在同一个局域网,配置代理 地址和端口 即可

如图

Fiddler 配置 https

  1. 点击tools -> options -> https
  2. 勾选下图选项
  3. 点击actions -> Export root … 导入证书到桌面
  4. 安装证书即可,或者可以通过本地ip加代理服务器端口访问直接下载证书安装,详细的安装证书不做详细说明

如图

Fiddler 配置 autoResponder

首先支持固定的字符串和正则的形式 ,比如基本示例:

1
regex:(?inx)^https://.+\.gif$ #Match HTTPS-delivered GIFs

主要记录下自定义参数名形式写法:

这里演示直接把线上代码代理到本地来,通过自定义变量名 filename

1
2
3
4
5
# pattern
regex:https://css.gbtcdn.com/imagecache/gbw/js/(?<filename>.*)-.*\.js

# replace
http://www.gearbest.cc/dist/js/${filename}.js

Fiddler scriptEditor的基本使用

针对一些特殊的使用方法,需要自定义代码实现的部分,可以使用 scriptEditor,使用.net 语法
做一些文件注入、修改返回头、请求头等,主要使用OnBeforeRequest OnBeforeResponse 两个方法

这里演示在 10.37.5.190:3001 主机的html文件注入一个script标签

1
2
3
4
if (oSession.HostnameIs("10.37.5.190:3001")||oSession.uriContains('10.37.5.190:3001') && oSession.oResponse.headers.ExistsAndContains("Content-Type","text/html")){
oSession.utilDecodeResponse();
oSession.utilReplaceInResponse('</head>','<script src="http://10.37.5.190:8888/target/target-script-min.js#anonymous"></script></head>');
}

如果一些添加Cookie,或者修改头信息的操作,也可以直接使用Filters功能,需要记住修改Filters之后要点击 Actions -> Fun Filterset now 按钮

mac上使用 Fiddler

mac安装使用Fiddler,需要用到跨平台的方案Mono,目前只有32位支持图形界面

下载Fiddler mac版本压缩包 Fiddler-Mac.zip

下载地址:https://www.telerik.com/download/Fiddler
选择mac版本,下载到一个你喜欢的路径解压出文件

下载安装Mono

下载地址:http://www.mono-project.com/download/#download-Mac

加入Mono到环境变量

修改你使用的base的配置文件,我使用zsh,修改文件 ~/.zshrc
添加如下环境变量:

1
2
# mono
export PATH=/Library/Frameworks/Mono.framework/Versions/Current/bin:$PATH

zsh使用参见:mac下使用zsh

启动Fiddler

Mono只支持命令行启动,并且图形界面只支持 32位

命令行进入到Fiddler文件目录,执行命令,第一次启动会比较慢,耐心等待

1
mono --arch=32 Fiddler.exe

然后会打开一个界面相对丑陋的Fiddler窗口界面,可以开始你的玩耍

Mac版使用的一些问题

总体使用问题相对较多,列几个中断流程的问题

  • 界面太丑,部分地方会乱码
  • 版本比较久
  • ScriptEditor 不可用,一些需要改动代码的地方无法处理 (这个是致命问题)
  • 关闭的时候可能会导致有进程卡住,电脑会无法链接网络 (先关闭图形窗口,再结束命令行可以解决)

总体感受,如果只是想看下请求抓下包也是可以的,要愉快地使用会比较难;做些其它配置可能就会有问题,比如配置自定义脚本编辑器默认指向notepad++.exe ,修改会直接卡死。
另外关于一些问题和说明,在官方博客中也有说明 :https://www.telerik.com/blogs/introducing-Fiddler-for-os-x-beta-1

Mac虚拟机使用windows WiFi代理尝试

使用虚拟器windows安装Fiddler

因为一直安装有虚拟机的windows系统,所以想到通过虚拟机wifi代理过去,虚拟机融合模式,也算完美使用,当然如果你有另一台windows电脑也可以不用虚拟机

虚拟机安装推荐使用 Parallels Desktop

注意:网络使用桥接,类似在局域网中加了一台新主机

https mac中导入证书

graph LR
钥匙串访问 --> 拖进去证书(FiddlerRoot.cer)
拖进去证书(FiddlerRoot.cer) --> 选择证书
选择证书 --> 右键
右键 --> 显示简介
显示简介 --> 信任
信任 --> 始终允许

如下图:
如图