抓包--以Charles为例

我们在开发的过程中,往往需要对网络信息进行抓包,如果是Debug的安卓应用可以使用Android Studio自带的抓包工具Network Inspector进行抓包。

在pc端的抓包工具有很多例如Fiddler、Wireshark、httpwatch等,本文主要介绍Charles(花瓶)进行介绍。下文所有的安装,设置均以mac为例,windows也相似,如果有需求还请自行探索~

1. 软件的安装与激活

Charles官网
Charles下载地址
Charles激活码生成地址
注意 本文仅供个人学习研究和交流使用,请勿用于任何商业用途。

  • 安装:过程非常简单,一路授权确认即可,不做赘述。
  • 激活:通过Charles激活码生成地址可以生成一个任意名字的激活码,之后在Help->Register Charles中输入对应的name和License Key即可完成破解。

2. 软件介绍

Charles是一个运行在你自己的计算机上的web代理(HTTP代理/ HTTP监视器)。可以将你的web浏览器(或任何其他Internet应用程序)配置为通过Charles访问Internet,Charles能够为你记录和显示发送和接收的所有数据。
在Web和Internet开发中,你无法看到Web浏览器/客户端和服务器之间正在发送和接收什么。如果没有这种可见性,要确定故障的确切位置是非常困难和耗时的。Charles可以方便地查看正在发生的情况,因此可以快速诊断和修复问题。

特性:

  • SSL代理-以纯文本查看SSL请求和响应
  • 带宽节流,以模拟较慢的互联网连接,包括延迟
  • AJAX调试——将XML和JSON请求和响应视为树或文本
  • AMF -以树的形式查看Flash Remoting / Flex Remoting消息的内容
  • 重复请求以测试后端更改
  • 编辑请求以测试不同的输入
  • 用于拦截和编辑请求或响应的断点
  • 使用W3C验证器验证记录的HTML、CSS和RSS/原子响应

3. 软件配置

3.1 系统代理权限

启动 Charles后,第一次 Charles 会请求你给它设置系统代理的权限。你可以输入登录密码授予 Charles 该权限。你也可以忽略该请求,然后在需要将 Charles 设置成系统代理时,选择菜单中的 “Proxy” -> “Mac OS X Proxy”来将 Charles 设置成系统代理。

3.2 安装根证书

“help”->“SSL Proxy”->“install Charles Root Certificate

3.3 证书不受信任解决办法

之后可以在系统的“钥匙串访问”中看到安装的证书,右键这个证书,在显示简介里选择始终信任。

3.4 https乱码解决办法

“proxy”->“SSL proxy setting” 选中SSL代理的开关,之后在include中添加一个host为 * ,port为443的配置,表示解析所有域名的443端口。

3.5 抓取https请求出现unknown解决办法

“proxy”->“Proxy setting” 设置http代理端口为8888,并勾选启用透明http代理。

3.6 Android和iOS安装证书

如果我们需要在iOS 或 Android 机器上截取 Https协议的通讯内容,还需要在手机上安装相应的证书。点击Charles 的顶部菜单,选择 “Help” -> “SSL Proxying” -> “Install Charles Root Certificate on a Mobile Device or Remote Browser”
之后就会看到类似下面的提示,根据提示即可完成证书安装
Configure your device to use Charles as its HTTP proxy on 192.168.53.16:8888, then browse tochls.pro/ssl to download and install the certificate.
Note that on iOS 10 and later you must then go into Settings > General > About > Certificate Trust
Settings and enable the Charles certificate to be trusted.

4. 软件使用技巧

4.1 抓包数据查看

Charles提供了Structure和Sequence两种数据视图,可以根据自己的需求进行切换,底部有对应的过滤器,可以过滤出指定域名的数据

4.2 自行组装网络请求

“tools”->“compose” 可以用于调试服务器的接口,需反复尝试不同参数的网络请求。

4.3 模拟弱网环境

“proxy”->“Throttle Setting”可以用来限制网速,模拟弱网环境。

列举几个常见的功能以供参考,Charles的能力远不止于此,类似设置断点,服务器压力测试等这里不做赘述,其他功能还请自行探索~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值