vlambda博客
学习文章列表

Fiddler 和其他抓包软件的比较





Fiddler 和其他抓包软件的比较



与Fiddler同类的抓包软件还有 Charles、Firebug、Wireshark、HTTPWatch等。


Fiddler 被称为世界上最好用的HTTP 调试工具。比起其他工具来说,其具有更多的优势。


(1) Fiddler 可以通过 FiddlerScript 写脚本来扩展功能,Charles 则不能。

(2) 使用 Charles 要付费,Fiddler 可免费使用。

(3) Charles是跨平台的(Windows、Mac、Linux) , 

Fiddler 现在同样也是跨平台的了(Windows、Mac、Linux) 。

(4) HTTPWatch 也是比较常见的 HTTP 抓包工具,但是只支持IE和Firefox浏览器,而且不能修改HTTP包。

(5) Wireshark 支持更多的协议,主要是用来监听 TCP/IP 协议,直接与网卡进行数据报文交互。如果用 Wireshark 来监控 HTTP 协议,就有点大材小用,而且不方便。



Fiddler 抓不到包应该怎么解决



很多读者经常发现 Fiddler 不能捕获数据包,这时可以按下面的步骤进行解决。


(1)先确定是HTTP包抓不到,还是HTTPS包抓不到。如果只是HTTPS包抓不到,说明是证书的问题,需要重新安装证书。

(2)检查浏览器的HTTP代理设置是否正确,或者换个浏览器试试。

(3) 检查 Fiddler 的捕获开关是否打开。

(4) 检查过滤的设置。

(5) 确定是否是捕获 Localhost 的流量。



如何找到想抓的包



启动 Fiddler, Web Sessions 列表就会抓到很多HTTP请求,我们需要找的HTTP 请求被淹没其中。这往往让初学者不知所措,不知道哪个才是自己要抓的HTTP请求。


我们在抓包之前,可以先把 Web Sessions 列表清空,然后再操作,这样 Web Sessions中抓到的HTTP请求就会少很多。


有以下几种方法可以清空 Web Session 列表。


第一种方法:Fiddler菜单栏上有一个x图标,单击小箭头后会看到“Remove all”选项,选此即可以清空 Web Session 列表。


第二种方法:单击 Web Session 列表中的任何一个HTTP 请求,并按快捷键【CTRL+X】。


第三种方法:在 QuickExec 命令行工具中输入命令“cls”, 按回车键,也可以清空Web Sessions 列表。


抓到自己想要的包后,应该让 Fiddler 暂停抓包,这样就不会因为抓到一些不相干的包而被干扰了。



Fiddler 异常退出后无法上网



电脑意外死机,Fiddler 异常退出后会导致电脑无法上网。原因是Fiddler异常退出后,没有注销代理,系统的代理仍然是 127. 0. 0. 1, 端口号是8888。


解决的办法是重新启动Fiddler 再关闭,这样浏览器就能上网了。



Fiddler排序



Fiddler 中的Web Session 默认是按照序号排序的,可能某种误操作会让 Web Session按照别的标准排序,导致用户找不到抓的包。


我们可以单击“序号”的列名,重新按照序号来排序,如图8-1所示。


▲图8-1 Fiddler 按时间排序



Fiddler 中查询会话



在菜单栏中单击 Edit-> Find Sessions, 或者用快捷键【Ctrl+F】打开“Find Sessions”的对话框,输入关键字查询你要的会话。查询到的会话会以黄色显示,如图8-2所示。


Fiddler 和其他抓包软件的比较

▲图8-2 查找会话


注意的是,汉字或者特殊字符很可能查询不到,因为在HTTP请求中,汉字或者特殊字符被转义了。



Fiddler 中保存抓到的包



有些时候我们需要把会话保存下来,以便发给别人或者以后去分析。保存会话的步骤如下:


(1)选择你想保存的会话,然后单击 File-> Save-> Selected Sessions.保存后的文件后缀名是.saz。文件中会保存完整的HTTP请求和HTTP响应;

(2) 双击.saz文件,或者单击 Fiddler 菜单栏中的 File-> Load Archive, 就能打开.saz文件。



Fiddler中编辑会话



默认的情况下,Fiddler 中的 Session是不能编辑的。


选择一个Session, 用鼠标右键选择“Unlock For Editing” (快捷键是【F2】) , 这样就可以在Inspectors的 Raw 模式下编辑HTTP请求和HTTP响应。



过滤会话



每次启动 Fiddler, 打开一个网页,都能看到几十个会话,看得人眼花缭乱。这时候我们可以使用 Filter 的功能来过滤,使网页只显示自己想要的 HTTP请求。


Filters 提供了很多过滤选项,一定能满足你的需求。


在Fiddler中找到Filters 选项卡,选中“Use Filters”, 就可以启动过滤功能。如图8-3 所示。


Fiddler 和其他抓包软件的比较

▲图8-3会话过滤


Filters的Actions中,我们可以保存好当前的过滤配置,也可以加载已经保存好的过滤配置。



常用快捷键



Fiddler中的 Web Sessions是我们用得最多的地方。通常我们必须选择Web Sessions中的 Session, 然后做其他的操作。表8-1所示的快捷键可以帮助你选择Session。



QuickExec命令行的使用



Fiddler 的左下角有一个命令行工具叫作 QuickExec, 允许你直接输入命令,如图8-4所示。


Fiddler 和其他抓包软件的比较

▲图8-4QuickExec命令


常见的命令如下。

(1) help: 打开官方的使用页面介绍,所有的命令都会列出来。

(2) cls: 清屏(【Ctrl+X】快捷键也可以清屏)。

(3) select: 选择会话的命令。

(4) 2.png: 用来选择。png 后缀的图片。

(5) bpu: 截获request。


还可以用"urlreplacehttp://fanmao.mysxl.cn/”替换掉host.


 我们最初发送给A站点的HTTP请求,都被Fiddler转发到B站点,而在浏览器中毫无感觉。测试或者debug过程中经常会有这种需求。



Fiddler比较会话的不同



如果需要比较两个Session的内容的不同,我们可以使用 Windiff工具。具体操作步骤如下。


(1) 下载 WinDiff。

(2) 在 Fiddler 中设置 Compare 工具为 WinDiff.启动 Fiddler, 在菜单栏中单击 Tools-> Fiddler Options, 在Tools选项卡中选择WinDiff的路径,如图8-5所示。


Fiddler 和其他抓包软件的比较

▲图8-5 配置 DiffTool


(3) 选中两个会话,用鼠标右键选择Compare, 就可以使用 WinDiff 来比较两个会话的不同了,如图8-6所示。


▲图8-6 比较会话



Fiddler插件



如果 Fiddler 不能满足要求,你可以来看看 Fiddler 的插件。


http: //www.telerik.com/fiddler/add-ons。



 8. 13. 1 JavaScript Formatter


从服务器返回来的 JavaScript 代码都没有格式化。利用 Java Script Formatter 插件可以格式化 JavaScript 代码,增加可读性。


安装好 Java Script Formatter 插件后,在 Fiddler 中选择一个Session, 用鼠标右键选择"Make JavaScript Pretty”, 就可以格式化 JavaScript 代码了。



8. 13. 2 Gallery 插件


选择很多图片的会话后,Gallery 插件可以显示这些图片的缩略图 。


假如所有的插件都不能满足你的需求,那么你只能自己开发插件了。





往期精彩文章