• Fiddler收费没得用?这款抓包神器 Github star 过万,一个字:香


    关于抓包,那是测试人员必备技能之一了,通常我们会通过一些抓包工具来辅助我们测试、定位bug。

    我最早接触并使用的就是 fiddler ,不过目前最新版本已经要开始付费了,以前很老的那版我也不爱用了,这可咋整?

    还好找到了另一款开源抓包神器whistle,目前 GitHub 上 1W+ 的 star,不可谓不强。不敢独自享用,赶紧拿来分享。

    一、whistle 简介

    whistle(读音[ˈwɪsəl],拼音[wēisǒu]),是基于Node实现的跨平台web调试代理工具。主要用于查看、修改HTTP、HTTPS、Websocket的请求、响应,也可以作为HTTP代理服务器使用。

    不同于Fiddler通过断点修改请求响应的方式,whistle采用的是类似配置系统hosts的方式,一切操作都可以通过配置实现,支持域名、路径、正则表达式、通配符、通配路径等多种匹配方式。

    目前我主要使用它来抓包手机APP,可以查看接口请求,以及做一些接口响应的替换等。

    二、安装

    1. 安装 node

    whistle基于node,所以要先安装node环境。直接进入node官网,安装最新版即可(我的是win10系统)。
    https://nodejs.org/

    安装成功后,在cmd窗口执行node -v就可以看到安装好的node版本。

    2. 安装 whistle

    有了node环境,就可以直接使用npm来安装whistle

    npm install -g whistle
    
    • 1

    因为npm默认镜像是在国外,这里推荐大家使用taobao的镜像安装:

    npm install whistle -g --registry=https://registry.npm.taobao.org
    
    • 1

    等待安装完成即可。接着可以执行w2 help,就可以看到whistle的帮助信息。

    3. 安装根证书

    点击工具栏中的 https ,再点击图片就可以下载证书了。

    根据图示进行证书安装即可。

    三、使用

    1. 启动

    执行命令w2 start即可启动。

    默认的端口是8899,我们也可以加上-p指定端口来启动。

    启动完成,就可以通过控制台输出的地址打开web界面了,就是文首图示里的界面。

    总体来说界面还是很友好的,有过抓包工具使用的童鞋基本上可以很快上手。

    在真正使用之前,别忘记打开对应的代理,比如我现在抓电脑浏览器里网页的请求,就要打开电脑的代理设置。

    可能会存在8899端口访问不了的情况,可以去检查下防火墙设置,添加个白名单或者关闭防火墙(刚踩完的坑o(╥﹏╥)o)。

    2. 停止

    执行命令w2 stop

    3. 重启

    执行命令w2 restart

    4. 查看 whistle 状态

    执行命令w2 status可以查看 whistle 实例的状态。

    三、手机抓包

    1. 配置代理

    手机端配置代理,需要与 whistle 端处于一个WiFi下,对WiFi进行对应的配置即可。

    2. 安装证书

    手机可以扫码安装,或者直接浏览器输入rootca.pro即可以下载证书。iOS安装根证书需要到连接远程服务器进行验证,需要暂时把Https拦截功能关掉。

    ios安装完证书后记得要打开证书信任设置,路径:设置-通用-关于本机-证书信任设置

    四、替换响应

    这里提一下替换响应的操作。

    有时候我需要模拟接口的异常返回,来测试下APP端上出现的提示是否足够友好,那么我就可以把接口的响应内容替换成我的目标错误码即可。

    在 whistle 中操作非常简单,通过简单的配置即可实现。首先在 rules 中配置一个规则,这里有一个默认的规则,我直接在这里配置,当然你也可以新建规则。

    前面的url就是我要替换的目标地址,后面的file://{vcode_resp_500}就是我要替换上去的内容,这里的vcode_resp_500是我的文件名。

    在 values 中,我新建了一个文件名字叫vcode_resp_500,里面贴上了我要的返回内容就行了。

    五、结语

    这里只是 whistle 的一个简单分享,具体更多的内容体验操作大家有兴趣可以学习下官方文档:http://wproxy.org/whistle/webui/

    也欢迎使用的小伙伴互相交流。

  • 相关阅读:
    加菲猫卡丁车:激情竞速 Mac(卡通赛车竞速游戏)原生版
    redis 非关系型数据库
    除铜树脂-KF340
    【第六篇】- Maven 仓库
    shell之免交互
    常量字符串
    计算机网络笔记 第二章 物理层
    目标检测——Faster RCNN
    2月26日做题总结(C/C++真题)
    rabbitMQ 消息顺序性、消息幂等性、消息不丢失、最终一致性、补偿机制、消息队列设计
  • 原文地址:https://blog.csdn.net/wessonlan/article/details/127970499