whistle是一个基于Node实现的跨平台web调试代理工具,类似Windows上的Fiddler,Mac上的Charles,主要用于查看、修改HTTP、HTTPS、Websocket的请求、响应,也可以作为HTTP代理服务器使用,不同于Fiddler通过断点修改请求响应的方式,whistle采用的是类似配置系统hosts的方式,一切操作都可以通过配置实现,支持域名、路径、正则表达式、通配符、通配路径等多种匹配方式,且可以通过Node模块扩展功能。

虽然长期以来一直使用的工具是Fiddler,但当我看到whistle的第一眼,就果断抛弃了Fiddler,转而使用whistle,诸多原因,我们下面一一来聊:

1、我们先看看whistle的官方文档:https://wproxy.org/whistle,点进去看的第一感觉这工具很强大,很灵活,而对比Filddler和Charles,功能比较弱,而且使用不是太灵活。

2、支持多种匹配规则的配置方式,而且规则还支持变量,使用下来就两个字:舒服,而Fiddler和Charles规则配置都有些困惑,特别死Charles规则的配置方式很死板。

3、支持使用动态规则,通过w2 use来导入动态的规则,很容易可以和项目编译流程打通,比如我们在项目根目录下新建whistle.cfg.js,内容:

const { name } = require('./package.json');
const path = require('path');function resolve(pathname) {return path.resolve(__dirname, pathname);
}module.exports = {name,rules: `
/www.test.com/commons.js/ ${resolve('./dist/commons.js')}
`
};

然后在编译命令运行之前,运行w2 use ./whistle.cfg.js,我们就可以导入一个以我们的项目名称为名字的规则列表(目前只有一条),而这段${resolve(’./dist/commons.js’)代码最终也会被替换为真实的项目路径。

4、支持hosts指向更改,而且无缓存,我们再也不需要去一层层去找hosts文件,再也不用关心更改的hosts是否生效了,再也不用去纠结Windows和Mac下hosts文件的存放位置,一条规则搞定:

www.test.com 118.118.118.118

5、支持各种请求和响应更改

6、原生支持远程调试,我们只需要加一条规则就可以搞定:

www.example.com weinre://example

…, 好处实在是太多,这里就不再多做介绍,有兴趣的朋友可以自行去研究,我们还是回到本文的主旨,手机端抓包和调试。

要进行手机端抓包,我们需要在手机上设置代理指向运行的whistle机器的特定端口(默认8899),IPhone和安卓手机设置代理的方式大同小异,这里主要介绍一下IPhone的设置方式:

1、打开手机上面的“设置”功能,进入手机的系统功能设置,如图所示。
2、进入手机的设置功能之后,选择“无线局域网”,点击进入,如图所示。
3、进入无线局域网之后,选择一个要设置HTTP代理的网络,点击进入,如图所示。
4、进入该网络配置之后,下拉页面,找到HTTP代理模块的“配置代理”,点击进入,如图所示。
5、进入配置代理的模块后,可以看到状态是关闭的,点击其中的“手动”,如图所示。
6、点击手动之后,就会出来一个模块让填写代理服务的ip和端口,正确输入即可,然后点击右上角的“存储”,如图所示。
设置完代理后,我们已经可以抓http网站的包,但是如果我们访问https的网站,会发现会提示证书有问题,我们需要安装并信任证书,证书安装我们可以通过Safari(一定要是Safari)访问:http://电脑ip:8899,
依次点击步骤一和步骤二下载证书,步骤三开启https抓包,证书下载完毕后,我们可以在描述文件中找到下载的证书并点击安装:
安装证书后我们需要信任证书,在“设置”>“通用”>“关于本机”>“证书信任设置”。在“针对根证书启用完全信任”下,开启对这个证书的信任。
到这里我们就可以抓手机上的https的包了,但是我们如何调试手机端的页面呢?

1、我们可以通过上面介绍的weinre来开启whsitle自带的远程调试工具

2、我么可以利用log来远程来查看远程控制台或者打印变量

3、我们可以通过resPrepend或resAppend配合本地文件或者变量来向手机端页面注入调试面板,比如eruda。例:

新建规则:

www.example.com resAppend://{append}

新建变量append,内容为:

<script src="http://cdn.jsdelivr.net/eruda/1.0.5/eruda.min.js"></script>

开启规则后,我们在请求www.example.com网站的时候就会自动注入eruda调试面板,通过调试面板我们可以方便的对手机端页面进行调试。

写在最后:

1、如果上面步骤都完成后,我们依然无法抓包,考虑是电脑端防火墙的原因,我们可以选择关闭防火墙和本地的杀毒软件,当然也可以放行8899端口,不过设置稍微有些繁琐。

2、手机抓包结束后,记得恢复代理为关闭,不然会影响后续正常情况下的请求发送。

使用whistle进行手机抓包并调试相关推荐

  1. Whistle pc抓包,手机抓包,https抓包

    此文章已不再更新,查看最新版文章与更多内容: 右键在新标签页中打开链接. <Whistle pc抓包,手机抓包,https抓包> ----------------------------- ...

  2. 【记录】IOS手机如何配置whistle代理进行抓包?(苹果系列)(安卓应该也是类似处理)

    前提:电脑先配置好 whistle. 进行抓包的前提是必须手机电脑在同一局域网啊!!! 第一步: 打开Mac 电脑网络偏好设置,查看当前的 ip 地址. 第二步: 手机设置WiFi 的代理为:192. ...

  3. 用Python实现手机抓包,获取当当图书差评数据!

    在这个万物互联的时代,手机端(App).电脑端(Web),连接着你我他. 本次学习了手机抓包的相关知识,了解了Charles-mitmproxy-Appium的基本使用,通过对当当图书评论的爬取,得以 ...

  4. 【看好了】如何使用fiddler实现手机抓包,Filters过滤器!

    目录 一.Fiddler与其他抓包工具的区别 二.Fiddler的工作原理 三.使用fiddler实现手机抓包 四.Filters过滤器 一.Fiddler与其他抓包工具的区别 1.Firebug虽然 ...

  5. Fiddler抓包远程调试篇

    Fiddler抓包远程调试篇 由于部分同学没有mac电脑或者其他条件限制,不方便在ios手机上调试,或者在4.3版本的安卓手机以下在客户端大厅内不能debug,我们只能采用fiddler抓包进行远程调 ...

  6. 抓包工具介绍、手机抓包、wireshark使用技巧

    抓包工具介绍 (1).网页抓包工具 Chrome浏览器插件 FireBug 插件 HttpWatch Fiddler 在浏览器chrome和firefox中可以使用插件抓取网络包,httpwatch会 ...

  7. 【fiddler】用fiddler实现iPhone手机抓包

    一.fiddler的简介 fiddler是位于客户端和服务器端之间的代理,也是目前最常用的抓包工具之一 . 它能够记录客户端和服务器之间的所有 请求,可以针对特定的请求,分析请求数据.设置断点.调试w ...

  8. 使用Fiddler手机抓包https-----重要

    Fiddler不仅可以对手机进行抓包,还可以抓取别的电脑的请求包,今天就想讲一讲使用Fiddler手机抓包! 使用Fiddler手机抓包有两个条件: 一:手机连的网络或WiFi必须和电脑(使用fidd ...

  9. 【建站系列教程】2.2、fiddler手机抓包教程

    [建站系列教程]2.2.fiddler手机抓包教程 (全网最良心.实用教程) fiddler手机抓包原理 步骤摘要 详细步骤 1. 安装fiddler.修改配置 2. 电脑和手机连上同一个wifi 3 ...

最新文章

  1. python opencv 图像膨胀
  2. 手机主宰了你的生活,这不是乔布斯想看到的
  3. C++拓展笔记2-3:C++中this指针用法简介
  4. Go语言中的struct的初始化。
  5. App-V应用程序虚拟化之二部署Template Server
  6. css样式之背景图片
  7. ajax从mysql提取数据在html中_提取图片中数据的科研利器
  8. Linux命令之感叹号 !
  9. 2018.5.28 PSOC第一枪:基于cypress的蓝牙开发
  10. maven添加子工程_Maven建立父子项目和跨项目调用内容的步骤—佳佳小白
  11. OpenCV-通道合并cv::merge
  12. Matplotlib库介绍
  13. 虚拟机建Mac系统步骤
  14. 第二章 Silicon labs EFR32 MG21 验证蓝牙的私有Characteristic的读/写
  15. 识别IOS和android方法
  16. 006网易-表达式求值
  17. Windows2008环境64位操作系统如何安装32位BDE
  18. java多线程12:阻塞队列Queue
  19. 也发个过VS3.0的MapHack
  20. MongoDB4.0 配置文件

热门文章

  1. 近三十年6000部国产电视剧告诉了我们些什么 | R爬虫可视化第四季
  2. [AttributeUsage(AttributeTargets.Class)] 用法例子
  3. 微信小游戏开发之微信登录功能的云开发实现方案选择
  4. MyBatis中的jdbcType
  5. 钱诚:10.11现货黄金原油价格走势实时行情分析
  6. 雅思作文未来计算机的应用,2020年8月6日雅思大作文真题参考范文: 间隔年的优劣势~...
  7. Python中利用BBP方式和蒙卡罗特方法求出π值(以及运用函数进行选择方式解决问题)
  8. 自律到极致-人生才精致:第7期
  9. 执行计划变化导致CPU负载高的问题分析 (r8笔记第20天)
  10. 传华为将抢先苹果首发卫星通信 ;1200亿亿次每秒,阿里上线世界第一智算中心;wxPython团队辟谣已死传闻|极客头条