一. 介绍以及下载(windows)

charles

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

Charles 主要功能

  1. 支持截取HTTP与HTTPS的网络封包;
  2. 支持重发请求,方便后端调试;
  3. 支持修改网络请求参数;
  4. 支持网络请求截获并动态修改;
  5. 支持模拟弱网络环境测试。

So 允许我来讲一个主要功能的第一点,也是调试程序最基本最常用的一点(个人见解,勿喷); 接下来就开始看正文。

二. 安装及破解
  1. 安装还是比较简单的 访问官网 点击DOWNLOAD 一顿行云流水操作,就安装完成。
  2. 为什么要破解呢,Charles是一个收费软件,如果不破解的话打开应用后一次最多使用30分钟;当然这样的结果不是我们想要的 so 就需要一些特殊手段;
    2.1 破解的话 就是需要在网站上下载 charles.jar 文件替换掉 安装包内的此文件 破解文件下载地址
    0f6dabdc876364d02872d2e3e43fb12.png
    2.2 下载完成后在Charles安装目录下的lib目录 找到之前的 Charles.jar 把新的覆盖粘贴进去 破解完成(未破解的Charles 只能使用半小时 半小时后程序闪退)
三. 下载证书
  1. 下载pc证书,打开Charles 点击Help–SSL Proxying –Install CharlesRoot Certificate 点击后会出现一个下载证书的页面
    pcSSL.gif
  2. 点击安装证书–当前用户–存储到受信任的根证书颁发机构
    install.gif

  3. 安装android证书 (小米手机为例) 电脑执行以下操作android.gif

image.png
3.1 电脑打开 chls.pro/ssl 网址下载charles-proxy-ssl-proxying-certificate .pem文件;然后使用usb传输文件方式下载到手机内;点击设置–WiFi–高级设置–安装证书–找到刚才下载的证书进行安装;
3.2 这是题外话,为什么查看blog有的文章说,手机浏览器访问 chls.pro/ssl 也能下载证书,我们却用pc下载再拉入手机呢;原因就是小米手机网站下载的是文件后缀为.crt的证书,在安装的时候小米识别不了,无法安装;在pc下载的是.pem后缀。
androidInstall.gif

  1. 注意点:1. Android机型在7.0及以上版本,不再信任基于用户的CA证书,刚好咱们下载的这个证书就是基于用户的CA证书,so 关于小程序或者H5页面无法抓取请求,当然也是有解决的办法,下面就不赘述了 给个地址有兴趣可自行查看;
    4.1 这第一种方式需要公司Android大佬的配合,就是要Android在配置文件里加一个类似与CA集,信任用户安装的证书;
    4.2 第二种的解决方案思路则是先把证书下载到手机内部,然后将手机权限(root),强制将用户证书转为系统证书;
四. 设置代理端口以及过滤请求
  1. 回到pc 设置Charles代理服务器的端口 点击proxy — proxySetting–设置端口 并启动
    port.gif
  2. 启用http代理,设置可以抓取的请求;(这里没有过滤使用了通配符;稍后说一个简单的过滤方法。)
    https.gif
五. 开始抓包
  1. 首先保证Android手机与PC同处于一个局域网之下(一个WiFi) 然后PC执行cmd命令 ipconfig 查看本机ip
  2. 手机链接WiFi设置代理 ip就是与PC相同的ip 端口就是刚刚咱们设置的端口;进入WiFi查看详情,选择代理改为手动,输入上图的ip,端口就是刚才咱们设置的端口8888;
  3. 看效果(下图中包含一次性过滤请求的方法,比较简单方便)
    1564482507(1).jpg
    3.1 使用方法:如果以上配置都已经完成,就可以打开Charles 一边“玩手机”一边工作了;Charles会记录下来你在手机做的操作(每个网络请求);然后根据相应的信息分析或者调试;

版权声明:本文为article-record原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/article-record/p/11275370.html