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!
插件的使用指南到此结束,感谢您的阅读!