「学点工具」系列之Fiddler

来源:互联网 发布:c语言联合体int的大小 编辑:程序博客网 时间:2024/05/01 07:29

Fiddler

工欲善其事,必先利其器。 ——子曰。
接下来的一段时间,我会介绍一些平时使用的工具,主要还是日常程序开发中的工具,感兴趣的同学可以关注下我的微信订阅号 能叔,为感。

网络抓包对于探究神秘互联网世界的真相是必不可少的技能,工具有很多,最有名的要算 wireshark¹,这工具功能确实强大,但学习成本相对也较高,有兴趣的可以买本《wireshark网络分析就这么简单》自己慢慢研究。当然也有简单的,比如 Smsniff²,强烈推荐没啥基础且不想投入时间的朋友用。

以上两个软件我都不介绍,这里我主要想讲下 Fiddler³,介于前面两者之间,味道刚刚好。

Fiddler允许你监视,设置断点,甚至修改输入输出数据,你越使用它就会离网络世界的真相更进一步,你越了解它就越会爱上他,可谓开发工程师、测试工程师、网络工程师居家旅行必备之工具。

其实很多内容在官网的 Fiddler Doc 上都有很详细的介绍了,可能有些人英文不好(我也是),我从实用的角度捡几个重要的点简要说下。另外英文实在不认识你的话,就下载 Fiddler2中文手册 吧!


1、原理介绍

Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,默认端口:8888。

Fiddler-1

举个栗子,比如访问 www.qq.com

Fiddler-2

当然你看着8888端口不舒服(强迫症),想改也是可以的。

Fiddler-3

2、基本界面

Fiddler2的UI功能介绍我就不一一罗列了,大伙自己打开来看看就知道了,这里就上一张整体图,有个感性的认识就好了!
Fiddler-0

3、捕获浏览器会话

能支持HTTP代理的任意程序的数据包都能被Fiddler嗅探到,Fiddler的运行机制其实就是本机上监听8888端口的HTTP代理。 Fiddler2启动的时候默认IE的代理设为了127.0.0.1:8888,而其他浏览器是需要手动设置的。

  • chrome设置
    建议下载个proxy SwitchySharp的插件,代理设置、过滤、切换都非常的方便!
  • firefox设置
    点击: 「工具」 -> 「选项」, 在「选项」对话框上点击 「高级」 tab -> 「网络」 tab -> 「设置」.

这些设置都很简单,就不上图占用大家流量了(毕竟运营商喊了半天的“提速降费”,但流量还是挺贵的),其它什么360安全浏览器,什么XX浏览器,我就不一一讲了,大同小异。

4、捕获JAVA应用

这里不管你是Eclipse开发也好, intellij idea也罢,甚至有人还在使用Jbuilder我也忍了,设置都是一样,有两种方式:

1、启动配置应用的JVM环境

jre -DproxySet=true -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8888或者jre -DproxySet=true -DproxyHost=127.0.0.1 -DproxyPort=8888 MyApp

2、代码设置JVM代理设置

System.setProperty("http.proxyHost", "127.0.0.1");System.setProperty("https.proxyHost", "127.0.0.1");System.setProperty("http.proxyPort", "8888");System.setProperty("https.proxyPort", "8888");

但是如果你程序中使用 Apache HttpClient 来发送请求的话,我不得不遗憾的告诉你,上述两种方式都没用,你必须在HttpClient上做代理设置,形如:

RequestConfig.custom().setProxy("127.0.0.1","8888").build();

5、捕获HTTPS

真的很简单,打开工具栏->Tools->Fiddler Options->HTTPS
Fiddler-4

如果你想知道原理,可参考 浅谈HTTPS以及Fiddler抓取HTTPS协议 ,反正我是不求甚解。

6、手机上抓包

要在手机上抓包的前提是: 要抓包的手机和安装Fiddler的电脑在同一个局域网上。 接下来就简单了,三步走:

  1. 配置Fiddler, 允许"远程连接" 
    Tools-> Fiddler Options 。(配置完后记得要重启Fiddler)。 
    选中"Allow remote computers to connect",是允许别的机器把HTTP/HTTPS请求发送到Fiddler上来 。
    Fiddler-8

  2. 给手机安装Fiddler证书
    使用手机浏览器访问http://【电脑IP地址】:【fiddler设置的端口号】,既可以下载fiddler的证书并安装。啥?电脑IP怎么看?把电脑反过来,底部右下角就能看到,如果还是看不到,请用橡皮擦一下。

  3. 给手机设置代理
    打开HTTP代理, 输入Fiddler所在机器的IP地址(比如:192.168.1.104) 以及Fiddler的端口号8888。

7、操作会话

  • 查找会话
    有些时候,会话列表中一堆的会话,眼睛都要看瞎了的时候,它就派上用场了,用快捷键Ctrl+F打开Find Sessions对话框,输入关键字查询会话,查询到的会话会用黄色显示(当然你也可以配置换个颜色)。
  • 过滤会话 这个其实和查找会话类似,就是个加强版的“查找会话”,只不过可以选项更多。在任务面板的Filters tab中,里面有很多选项, 可以自己研究下,大概就知道怎么了。
  • 比较会话
    有些时候,我们想比较下两个会话的区别,选中2个会话,右键然后点击Compare,就可以用WinDiff来比较两个会话的不同了(当然需要你安装WinDiff)。
  • 保存会话
    有些时,候我们需要把会话保存下来,以便发给别人或者以后去分析。那么选择你想保存的会话,然后点击File->Save->Selected Sessions,搞定。

8、断点修改request、response

这属于高级技能,本期略,有时间再续。

9、快速命令行QuickExec

这属于高级技能,本期略,有时间再续。

10、其它小cookie

  • 有用的“十”字架
    绝对的傻瓜操作,比如你想抓指定的程序的包,比如只想抓“印象笔记”,那就点击按住“十”字架,然后拖到印象笔记的窗口放开就可以了。它能指定进程进行抓包,指哪打哪,排除不必要的干扰。
    Fiddler-7

  • 编码小工具
    点击Fiddler2工具栏上的TextWizard,这个工具可以Encode和Decode string,妈妈再也不用担心我的编码了。
    Fiddler-5

  • Composer作曲家
    这玩意和 Postman⁴ 一样,可以来模拟你的http请求,你可以自己构建一个美妙的曲子。
    Fiddler-6


附录

  • Wireshark官网:https://www.wireshark.org/
  • Smsniff官网:http://www.nirsoft.net/utils/smsniff.html
  • Fiddler官网:http://www.telerik.com/fiddler
  • Postman官网:https://www.getpostman.com/

欢迎关注我的个人微信公众号:能叔

能叔

0 0