网络抓包

抓包其中涉及三个角色:客户端,代理,目标服务器

原本正常访问网页或 App 路径是: 客户端->目标服务器。抓包,其实就加入了一个代理,客户端->代理->目标服务器,只有这三者产生一定的联系,才能进行拦截/抓取一些东西,客户端先访问代理,代理把客户端的信息记录下来,代理再去联系目标服务器,进而返回给客户端

Fiddler 是一个通过代理的方式来进行抓包工具,运行时会在本地建立一个代理服务,默认地址:127.0.0.1:8888,在使用 Fiddler 之前要先安装证书,如果允许远程计算机设备连接,则要去勾选相关配置

过滤

抓包的时候,会抓到其它网站的包,如果想要抓指定网站的包,可以设置过滤器,其他网站就会被屏蔽掉

在 Filters 中勾选 Use Filters,有两种过滤方式,根据 Hosts 过滤和进程过滤

选择 Show only following Hosts,并在下面写是要过滤的域名或 ip + 端口号,多个 HOST 之间用;号隔开

如果要根据进程过滤,则勾选 Show only traffic from,并选择一个应用进程,或者直接在工具栏中拖动进程过滤按钮到需要过滤的窗口程序上

最后点击 Actions 开始过滤

断点

在 Rules 中设置断点,断点可以拦截请求和响应:

  • 前置断点:拦截请求
  • 后置断点:拦截响应

添加前置断点之后,所有的请求前面都是红色的,表示被断点,请求有数据,响应没数据,因为还没有发送数据,所有的请求都被拦截中

后置断点会拦截服务器发送给客户端的数据,可以对数据进行任意的修改,然后再发送给客户端

mock

可以在 AutoResponder 中设置规则,用来定义响应数据,它不同于修改,是完完全全的重写响应

弱网

甚至可以模拟网络不好的情况,在 FiddlerScript 中找到以下代码:

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"; 
}

修改数字即可调整发送或者响应的速度了,最后在 Rulur>Performance 中开启

参考

  • HTTP 抓包实战