美文网首页
Charles 移动应用抓包调试工具的初步使用与了解

Charles 移动应用抓包调试工具的初步使用与了解

作者: 九九丸子 | 来源:发表于2018-07-30 17:29 被阅读61次

    Charles 简介

    Charles 是一款移动端调试抓包工具。
    用于移动端开发或测试时调试与服务器端的网络通讯协议。

    Charles 有如下特点:

    1. 支持 SSL 代理,可以截取分析 SSL 的请求
    2. 支持流量控制。可以模拟慢速网络(2G,3G),以及等待时间较长的请求。
    3. 支持 AJAX 调试。可以自动把 JSON 或者 XML 数据格式化,方便查看。
    4. 支持重发网络请求,方便后端调试。
    5. 支持修改网络请求参数。
    6. 支持网络请求的截取和动态修改。
    7. 有不同平台的版本(Mac,Windows、Linux)。

    Charles 安装

    Charles 的官方下载网站(http://www.charlesproxy.com)。

    第一次打开 Charles ,会请求你给它设置系统代理的权限。可以自由选择是否设置。如果后面需要设置系统代理,可以在选择菜单中的 “Proxy” -> “Mac OS X Proxy” 将 Charles 设置成系统代理。

    Charles 截取 iPhone 上的网络封包

    设置 Charles

    要截取 iPhone 上的网络请求,需要打开系统代理。在 Charles 的菜单栏上选择 “Proxy”->”Proxy Settings”,填入代理端口 8888,并且勾上 “Enable transparent HTTP proxying” 就完成了在 Charles 上的设置。

    设置 iPhone

    在 Charles 的顶部菜单的 “Help”->”Local IP Address”,获取 Charles 运行所在电脑的 IP 地址,如下图所示:


    Local IP Address.png

    在 iPhone 的 “ 设置 “->” 无线局域网 “ 中,进入当前连接的 WIFI 的详情页 ,找到底部的「HTTP 代理」选择「手动」然后填上 上面👆获取到的电脑 IP,以及端口号 8888,输入完成点击存储即可。如下图:

    设置手动 HTTP 代理.png

    按照上面流程设置好以后, Charles 会弹出 iPhone 请求连接的确认菜单,点击 Allow 即可。

    抓取 Https

    分析 Https 协议相关的内容。要安装 Charles 的 CA 证书。

    菜单中选择 “Help” -> “SSL Proxying” -> “Install Charles Root Certificate”。


    image.png

    在钥匙串中找到名称为 Charles Proxy CA 的证书,默认是不被信任的。双击该证书,展开「信任」标题,选择「始终信任」,输入系统密码即可更改证书权限,证书安装完成。

    始终信任.png

    安装完证书之后,Charles 默认不会获取 Https 信息,获取某个网站上的所有 Https 网络请求,需要在该请求上右击,选择 SSL Proxying。

    抓取移动设备 Https

    iOS 或 Android 机器上截取 Https 协议的通讯内容,需要在手机上安装证书。点击 Charles 的顶部菜单,选择 “Help” -> “SSL Proxying” -> “Install Charles Root Certificate on a Mobile Device or Remote Browser”,然后就可以看到 Charles 弹出的简单的安装教程。如下图所示:

    image.png

    根据上图提示,在手机浏览器中访问地址:chls.pro/ssl,按照提示安装证书。会弹出未信任的警告,右上角点击「安装」如下图:

    image.png

    点击安装后再次点击完成证书即可安装成功。

    image.png

    Charles 默认不截取 HTTPS,需要在要截取的网络请求上右击,选择 SSL Proxying 选项。

    模拟慢速网络

    在移动端测试时,常常需要模拟弱网环境。Charles 完全可以胜任。
    在菜单选择 “Proxy”->”Throttle Setting” ,勾选上 “Enable Throttling”,并且可以设置 Throttle Preset 的类型。

    后续补充:

    1. 映射请求

    Map local
    Map Remote
    No Caching

    1. Chrome 的 Charles 插件

    Chrome 的 Charles 插件可以控制浏览器请求先映射到 charles 对应的端口, 然后再让 charles 转发到指定的端口。

    参考博客: https://blog.devtang.com/2015/11/14/charles-introduction/

    相关文章

      网友评论

          本文标题:Charles 移动应用抓包调试工具的初步使用与了解

          本文链接:https://www.haomeiwen.com/subject/dcmfvftx.html