Android 抓包工具——HttpCanary

简介

HttpCanaryAndroid平台下功能最强大的网络分析工具,支持TCP/UDP/HTTP/HTTPS/WebSocket等多种协议,可以视为Android平台下的FiddlerCharles

HttpCanary的使用者需要掌握一定的计算机网络基础知识,且仅适用于以下使用场景:

  • Android、前端和后端软件工程师对Rest API调试,定位网络编程中出现的bug。
  • 测试工程师编辑网络数据模拟不同业务场景,进行白盒或黑盒测试。
  • 网络安全工程师对App和服务器网络通信的风险进行测试和验证。

功能特性

多协议支持

  • 支持HTTP1.0/HTTP1.1/HTTP2/HTTPS协议。
  • 支持WebSocket协议。
  • 支持TCP/UDP协议。

数据分析支持

  • 支持常见编码格式解析,例如gzip、brotli、chunked等。
  • 数据包内容搜索和过滤,支持创建自定义过滤规则。
  • 数据内容预览,例如JSON、图片、音频、视频、文本、Cookie等。
  • 丰富的数据分析视图,例如Raw视图、HEX视图、TEXT视图等。
  • 网络详情分析,支持HTTP详情总览、请求/响应数据量、时间统计等。
  • 支持数据包收藏、备注、保存、分享、复制。

调试支持

  • 断点指定请求,支持修改数据再提交。
  • 注入器支持,创建自定义规则修改数据包。
  • 支持对网络请求重发、编辑重发、批量重发等操作。
  • 配置黑名单或者白名单,自由指定目标抓包。
  • 支持数据包屏蔽,比如屏蔽客户端发向服务器的指定数据包。

插件支持

  • 内置多种常用插件,比如视频自动下载、微信定位漂移等。
  • 注入器插件创建、导入和导出(部分功能实现中)。

下载安装

设备要求

  • Android 5.0+/真机+模拟器/Wifi+蜂窝网络/无root要求。

请求抓包

抓包步骤

1.启动应用,点击右下角小飞机抓包按钮,此时会弹出安装CA证书弹窗,点击安装即可。

httpcanary_index

httpcanary_ca

2.为证书命令可以自定义一个名词,这里我们使用默认的名称。

httpcanary_rename_CA

3.界面提示创建VPN连接,点击确定

httpcanary_vpn

4.启动应用,此时右下角会有抓包悬浮窗。

httpcanary_getrequest

5.双击浮窗可以方法查看抓包请求列表。

httpcanary_requestList

请求分析

1.点击请求列表中任意一个请求,可以查看请求详情。

request_summary

2.点击请求菜单可以查看到详细的请求信息。

request_detail

3.点击响应菜单可以查看响应信息。

request_response

其他功能

请求搜索

HttpCanary会默认将设备上所有请求获取,所以请求列表会有非常多的请求,怎么找到我们想要查看的请求呢?我们可以点击右上角的搜索按钮,然后我们可以看到有很多搜索选项。

httpcanary_search

例如根据Host来筛选,我们勾选域名m.baidu.com

httpcanary_host

勾选完成之后回到请求列表界面,可以看到展示的都是域名m.baidu.com相关的请求。

request_host_result

请求收藏

在请求界面点击右上角收藏按钮可以收藏请求

request_summary

收藏完成之后可以点击主界面菜单,点击收藏菜单查看所有收藏的请求。

httpcanary_collect

目标应用

如果想针对指定应用进行抓包,可以设置目标应用来进行抓包。依次点击左上角主界面菜单然后点击设置进入设置界面。

httpcanary_setting

点击目标应用菜单,可以选择设备上应用列表或者直接输入应用包名。

httpcanary_app

目标Host

设置目标Host可以对指定的域名进行抓包,在设置界面点击菜单目标Host添加IP或域名保存生效。

httpcanary_set_host

DNS服务器

在设置界面点击DNS服务器菜单可以设置DNS,HttpCanary默认提供了一些公共的DNS可以选择,点击右上角添加按钮+可以添加自定义的DNS地址。

httpcanary_dns

httpcanary_dns_list

参考资料