一. Charles工作原理

本质就是一个http抓包分析工具,在工作的时候将charles设置成代理服务器,所有网络请求都会经过Charles,这样就实现了网络封包的截取和分析。

主要功能

  • 截取http和https网络封包
  • 支持重发网络请求
  • 支持修改网络请求参数,网络请求的截取、修改
  • 可以模拟慢速网络

二. Charles 安装及破解

参考: Charles 注册码/破解/使用教程

实验环境:

win10 + 荣耀9

三. Charles 面板介绍

三. 手机抓包

手机抓包设置,主要分为3步

  • 开启Charles http代理
  • 手机端wifi添加代理
  • Charles弹窗咨询询问是否允许

详细步骤:

  1. 右击菜单栏"Proxy",选择 "Proxy Settings"。

  2. 在"Proxy Settings" 页面配置代理端口(默认是8888,如果端口冲突,可以更换为其他端口),并在启动透明代理处打勾。

  3. 获取PC端 ip 地址。

    获取pc端ip地址的方式有两种。

    3.1. 在菜单栏选择"Help",点击"Local IP Address"。


    3.2. 按快捷键WIN + R 后,在输入框输入cmd,回车。在命令行模式输入ipconfig 。然后查找绑定网卡的ip地址。

  4. 在手机端选择设置-->无线与网络 --> WLAN 打开无线。(以荣耀9为例)

  5. 连接与PC端处于同一个路由器的wifi

  6. 长按wifi名称,点击修改网络

  7. 选择代理为手动模式,并且输入PC端ip地址,和代理端口

  8. 保存后在pc端会弹出一个确认菜单,询问是否允许加入Charles。

  9. 选择allow 后,即手机抓包设置已经基本完成。

手机抓包的注意事项:

  1. 电脑和手机必须处于同一路由器下,可以为不同的wifi,不同的网段。
  2. 关闭电脑防火墙
  3. 结束抓包时,及时恢复手机wifi代理(选择代理模式为自动即可)。否则会影响手机上网。

四. Charles https抓包方式

4.1 PC端实现HTTPS抓包

PC端https抓包设置,主要分为2步

  • PC端安装Charles证书

  • 配置SSL的抓取域名

详细步骤:

  1. 选择菜单栏"Help",选择"SSL Proxying" ,安装根证书。

  2. 当选择存储位置时,选择本地存储,并选择下一步。

  3. 选中"将所有的证书都存放入下列存储"后,证书存储选择"受信任的根证书颁发机构",选择下一步并确认完成.(如果选择个人,可能会导致抓取https包失败)

  4. 选择菜单栏"Proxy",点击"SSL Proxying settings"。

  5. 在"Enable SSL Proxying"处打勾,在include表单中添加host为通配符*,表示抓取所有域名。(也可以指定单个域名,如foo.example.com,也可以指定泛域名,如*.examle.com)

  6. PC端抓取https协议包配置完毕

4.2 手机端实现https抓包

手机端https抓包设置,主要分为3步

  • 在移动设备或远程浏览器上安装SSL证书

  • 在手机端浏览器输入网址 "chls.pro/ssl"

  • 下载证书并信任该证书

详细步骤:

  1. 选择菜单栏"Help",选择"SSL Proxying" ,安装手机端根证书

  2. 在上一步操作完成后,会提示证书存储位置,以及手机下载证书方式。(IOS10 云云..)

  3. 在手机浏览器输入网址chls.pro/ssl 后下载证书到手机端。

  4. 在打开证书时提示输入手机锁屏密码,输入即可

  5. 输入密码后,为证书设置一名称,凭据用途选择"VPN 和应用",点击确认。(图中在这一点选择有误,请留意一下)

    关于凭据用途的选择,解释如下:

    You can use digital certificates to identify your device for a variety of purposes, including VPN or Wi-Fi network access as well as authentication to servers by apps such as Email or Chrome. If you plan to use certificates for Wi-Fi authentication, be sure to select the Wi-Fi option from the menu described below.

  6. 手机端抓取https协议包配置完毕

五. Charles 过滤网络

charles过滤网络有三种方式:

  1. 在主页面的Filter 栏中输入需要过滤出来的关键字

    如图所示,在主页面filter栏输入aldwx.com 后,我们会看到只会展示aldwx.com 相关的过滤包。

  2. 在菜单栏选择"Proxy ",点击 "Recording Settings",在弹出的窗口中选择include栏,点击"Add",在弹出的窗口中输入需要监控的协议,主机地址,端口号等信息。

    如上图,输入完毕后,连续两次点击"OK"后,再次抓包,这下我们就只能看到www.aldwx.com 这个域名的过滤包(ps: 我们同样也可以使用*和?这样的通配符过滤,以获得更多域名的过滤包)

  3. 在想过滤的网络请求上选中右击,选择"Foccus",之后在Filter栏中勾选 Focussed

    第1,3种方式适合临时、快速过滤网络数据包,第2种方式适合长期、固定模式过滤网络数据包

友情链接: mac下charles使用简介

Charles 笔记的更多相关文章

  1. Charles 学习笔记

    之前接触过抓包工具Fiddler,一直在Windows下使用,感觉还是挺好用的.今天接触了Charles才有了了解,首先Charles设计的比较美丽,而且页面布局也是简单易学的,但这两款抓包工具本质的 ...

  2. Charles使用笔记

    Charles本身其实是一款十分强大且易用的代理软件,最近用的比较多,大致整理了一下自己用到的一些东西.   Charles的主要作用 1.查看网络请求,手动分析数据 2.代理接口,模拟数据      ...

  3. 【Python学习笔记】Coursera课程《Using Python to Access Web Data 》 密歇根大学 Charles Severance——Week2 Regular Expressions课堂笔记

    Coursera课程<Using Python to Access Web Data > 密歇根大学 Charles Severance Week2 Regular Expressions ...

  4. 【Python学习笔记】Coursera课程《Python Data Structures》 密歇根大学 Charles Severance——Week6 Tuple课堂笔记

    Coursera课程<Python Data Structures> 密歇根大学 Charles Severance Week6 Tuple 10 Tuples 10.1 Tuples A ...

  5. Charles 使用笔记

     一.介绍 Charles 属于抓包软件. Charles 多平台支持,mac.windows.linux. Charles 是收费软件,可以免费试用 30 天.试用期过后,未付费的用户仍然可以继续使 ...

  6. Charles使用笔记001

    一.抓电脑的请求 Proxy-->勾选Windows Proxy 二.Charles 拦截原理 三.Charles 拦截修改数据 选择一个链接-->右键-->勾选Breakpoint ...

  7. 【Python学习笔记】Coursera课程《Using Databases with Python》 密歇根大学 Charles Severance——Week4 Many-to-Many Relationships in SQL课堂笔记

    Coursera课程<Using Databases with Python> 密歇根大学 Week4 Many-to-Many Relationships in SQL 15.8 Man ...

  8. 【Python学习笔记】Coursera课程《Using Python to Access Web Data》 密歇根大学 Charles Severance——Week6 JSON and the REST Architecture课堂笔记

    Coursera课程<Using Python to Access Web Data> 密歇根大学 Week6 JSON and the REST Architecture 13.5 Ja ...

  9. Charles初体验

      背景: 谈起HTTP调试代理工具, 很多人第一反应就会提到Fiddler. 可惜Fiddler由C#编写, 对Mac电脑的支持并不友好(存在Mac版Fiddler--mono fiddler, 不 ...

随机推荐

  1. 从Go语言编码角度解释实现简易区块链

    区块链技术 人们可以用许多不同的方式解释区块链技术,其中通过加密货币来看区块链一直是主流.大多数人接触区块链技术都是从比特币谈起,但比特币仅仅是众多加密货币的一种. 到底什么是区块链技术? 从金融学相 ...

  2. chrome devtools tip(1)--调试伪类

    开发中我们经常遇到,添加些focus,hover事件,样式,但当我们去打开 chrome devtools,浮动上去的时候,然后准备去改变样式的时候,结果由于光标移动了,样式不见了,非常不方便调试,其 ...

  3. CheckBox多选

    前台: <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center"> & ...

  4. 基准测试了 ArrayList 和 LinkedList ,发现我们一直用 ArrayList 也是没什么问题的

    ArrayList 应该是 Java 中最常用的集合类型了,以至于我们说到集合就会自然而然的想到 ArrayList.很多同学都没有用过除了 ArrayList 之外的其他集合,甚至于都已经忘了除了 ...

  5. SpringBoot整合MybatisPlus3.X之Wrapper(五)

    官方文档说明: 以下出现的第一个入参boolean condition表示该条件是否加入最后生成的sql中 以下代码块内的多个方法均为从上往下补全个别boolean类型的入参,默认为true 以下出现 ...

  6. RESTFul API最佳实践

    RESTful API最佳实践 RESTful API 概述 基本概念 REST 英文全称:Representational State Transfer,直译为:表现层状态转移.首次是由Roy Th ...

  7. Google Tensorflow 迁移学习 Inception-v3

    附上代码加数据地址 https://github.com/Liuyubao/transfer-learning ,欢迎参考. 一.Inception-V3模型 1.1 详细了解模型可参考以下论文: [ ...

  8. beanFactory 设计模式 Bean 生命周期的胡言乱语,哈哈

    写在前面的话 适用读者:有一定经验的,本文不适合初学者,因为可能不能理解我在说什么 文章思路:不会一开始就像别的博客文章那样,Bean 的生命周期,源码解读(给你贴一大堆的源码).个人觉得应该由问题驱 ...

  9. windows上使用VsCode开发C/C++

    使用VsCode+makefile开发C/C++ 1. 介绍 vscode作为现在越来越受欢迎的编辑器之一,因为可以使用插件让vscode支持几乎市面上所有的编程语言,由于笔者主要接触的是 C/C++ ...

  10. [模板]tarjan——最后通牒

    这么久了我还是不会板子,你们随便笑话我吧. 再不会打我实在是无能为力了. 这篇博客写的像个智障一样...写它的目的就是自嘲? 才不是,为了方便查阅,因为我真的记不住. 对于割边,要存储该点入边的编号, ...