【ios开发】Charles抓包工具使用详解

Charles是一个HTTP代理/ HTTP监视器/反向代理,使开发人员能够查看其机器和Internet之间的所有HTTP和SSL / HTTPS流量。 这包括请求,响应和HTTP标头(包含cookie和缓存信息)。

主要功能:

  1. 支持SSL代理。可以截取分析SSL的请求。
  2. 支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。
  3. 支持AJAX调试。可以自动将json或xml数据格式化,方便查看。
  4. 支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息格式化,方便查看。
  5. 支持重发网络请求,方便后端调试。
  6. 支持修改网络请求参数。
  7. 支持网络请求的截获并动态修改。
  8. 检查HTML,CSS和RSS内容是否符合W3C标准。

Charles是一款收费的软件, 可以免费试用30天 (常用的话建议大家找下破解版)官网下载地址

下载安装后, 启动Charles。

第一次启动,Charles会请求你给它设置系统代理的权限,可以直接确认,输入登录密码授权:

也可以忽略该请求, 在需要使用的时候将其设置为系统代理:

抓取iPhone上应用的网络封包

  • Charles的设置
  1. 要抓取iPhone上应用的网络请求, 我们首先需要将Charles的代理功能打开(菜单栏:Proxy->Proxy Settings...):
  1. 将代理端口设置为8888,并勾选“Enable transparent HTTP proxying”:
  • iPhone的设置
  1. 获取Charles运行所在电脑的IP地址:
  1. 在iPhone的“设置”->“无线局域网”中点击当前连接的wifi,在详情界面找到[HTTP代理]一项, 切换为手动, 设置上Charles运行所在电脑的IP和端口号8888:
  1. 打开你需要抓包的应用,可以看到Charles弹窗iPhone请求连接的确认菜单, 点击“Allow”允许连接即可。

抓取Https请求

  • 安装证书

输入系统的登录密码, 即可在钥匙串中看到我们安装的证书, 双击证书, 信任证书:

  • iPhone安装证书

选中后会弹出一个提示框:

在iPhone自带的safari浏览器中输入网址:chls.pro/ssl ,允许其下载配置描述文件, 在“设置”->“通用”->“描述文件与设备管理”中信任Charles Proxy 文件:

在ios10.3以后,安装新的自定义证书默认是不受信任的,需要在“设置”->“通用”->“关于本机”->“证书信任设置”中手动打开开关去信任:

到这里, 我们就可以愉快的抓取应用的请求了,但此时你发现 ,抓取到的请求内容都发生了乱码:

不用担心, 去设置SSL代理就ok了:

你可能感兴趣的:(【ios开发】Charles抓包工具使用详解)