阅读 16799

HttpCanary使用指南——各种神奇的插件

HttpCanary更多资料,点我!!!

作为目前Android平台最强大的抓包工具,HttpCanary从设计之初就规划了插件功能(2.6.0版本之前称为‘模组’)。基于NetBare框架的虚拟网关-拦截器设计,HttpCanary可以实现非常多的扩展功能,比如Host屏蔽、IP屏蔽等。我将一些扩展功能都以插件的形式,集成到HttpCanary中,既互相独立又相互作用,最典型的就是静态注入器

这篇文章将详细介绍下HttpCanary内置的各种神奇插件,包括如何使用以及使用场景。

使用条件

HttpCanary版本 v2.6.0+
复制代码

插件安装

HttpCanary -> 设置 -> 插件管理 -> 右上角+号 -> 插件仓库
复制代码

插件1:Host屏蔽

利用Host屏蔽插件,我们可以屏蔽对指定Host或者服务器IP的Http请求,比如屏蔽广告请求等。

1.1 使用方式

创建一个名为hosts.txt的文本文件,将需要屏蔽的Host或者IP以一行一行的格式添加进去,然后复制到/HttpCanary/plugins/HostBlock/目录下。比如:

www.hello.com
www.work.com
www.bug.com:8080
复制代码

除了Host,也可以加入IP地址:

10.11.12.13
10.10.10.10
123.123.123.123
复制代码

当然,还可以Host和IP混着写:

www.hello.com
10.11.12.13
10.10.10.10
www.work.com
123.123.123.123
www.bug.com:8080
复制代码

1.2 注意事项

Host后面有些情况下需要加入端口号,具体可以到抓包内容总览中查看Host后面是否有端口号。

插件2:MimeType屏蔽

和Host屏蔽类似,MimeType屏蔽插件可以用来屏蔽指定类型的Mime-Type,但不同的是MimeType屏蔽插件的屏蔽功能分为上行屏蔽和下行屏蔽,即可以配置屏蔽请求或者屏蔽响应。

什么是MimeType?它是一种包含在Http头部的Content-Type中的数据,用来标识数据类型,比如图片、Json、Html等,各种MimeType的定义请点这里

2.1 使用方式

如果要屏蔽包含指定MimeType的请求,创建一个名为req-mimes.txt的文本文件,将需要屏蔽的MimeType以一行一行的格式添加进去,然后复制到/HttpCanary/plugins/MimeTypeBlock/目录下。如果是要屏蔽响应,则文本文件名应为res-mimes.txt。

比如说我要屏蔽一些视频广告,可以在res-mimes.txt中添加如下:

video/mp4
复制代码

这样,所有mp4类型的数据响应都被HttpCanary屏蔽了,包括视频广告等。

2.2 插件应用

下面以企鹅家的视频应用为例,看一下视频广告的拦截效果。

首先,配置好插件并启用。简单步骤如下:

  • 打开/HttpCanary/plugins/MimeTypeBlock目录,编辑res-mimes.txt。
  • 加入一行:video/mp4,然后保存。
  • 启动首页抓包开关按钮。

准备好之后,打开企鹅视频应用,注意先把缓存清理下,防止有本地广告视频缓存。

来个效果图:

开着HttpCanary的时候广告已经load不出来了,屏蔽生效!

插件3:图片、音频和视频下载器

有的时候,我们希望能保存某些图片、视频等媒体文件并分享到微信好友或朋友圈,比如一段精彩的电影预告片等。但是一般情况下,网站或者应用只提供浏览的功能,不会提供下载或者保存功能。这个时候HttpCanary的下载器插件就派上用场了。

HttpCanary的下载器一共有三个,分别是图片下载、音频下载、视频下载。原理都是通过检测Http响应数据头部中的Content-Type,从而判断是否需要保存响应数据。

下面以图片下载器插件为例。

3.1 使用方式

安装好插件后,直接在首页开启抓包按钮。然后所有的图片请求文件都会自动保存到/HttpCanary/plugins/ImageDownloader目录下。

连任何Icon都不会放过!

插件4:请求统计表

如果希望将所有抓包到的请求信息,以Excel表的形式导出,这个插件就派上用场了!

请求数据统计的维度包括:

  • Url
  • 服务器IP
  • 协议
  • 请求方法
  • 响应码
  • 请求开始时间
  • 请求响应时间
  • 请求结束时间
  • 请求数据大小(B)
  • 响应数据大小(B)
  • 耗时1(ms)
  • 耗时2(ms)

其中包括一些请求时间维度,可以用来计算网络请求的平均耗时,是性能测试一款利器。

4.1 使用方式

安装好插件后,直接在首页开启抓包按钮。当停止抓包后,会自动在/HttpCanary/plugins/StatsOverview目录下生成本次抓包的Excel表格。

插件5:微信定位漂移

微信定位漂移插件是用来修改定位经纬度的,实现“蒙多想去哪儿就去哪儿”的功能。包括:聊天时发送的地理位置,发朋友圈的地理位置。

5.1 使用方式

将经纬度按照 经度,纬度 的格式复制到粘贴板上,比如可以利用百度地图坐标拾取系统获取指定地点的经纬度(右上角直接复制即可)。完成后启动首页抓包按钮。

测试效果的话,也可以使用长按上图描述文案中的经纬度,然后复制。我们以116.41667,39.91667(北京王府井)为例,当然开发者本人是远在深圳。

微信中发送位置,显示如下:

成功漂移!

再来看朋友圈的地理位置:

成功漂移!

插件须知

由于每个插件都是独立的拦截器,且每个拦截器都会对网络流量进行分析探测,所以如果启用的插件过多,对性能是有一定的影响的,比如卡顿,访问网络慢等。

另外,如果说只需要用到插件功能,而不需要关心具体抓包内容,比如下载器、广告屏蔽等。强烈建议在设置中开启性能模式!

最后,关于插件的启用、禁用、删除,均可以在设置->插件管理->长按插件来管理。

结语

如果您对HttpCanary有任何疑问或者建议,可以访问HttpCanary Github并创建issue!

插件的使用指南到此结束,感谢您的阅读!