一. 简介及安装

一、charles的使用

1.1  charles的说明

Charles其实是一款代理服务器,通过过将自己设置成系统(电脑或者浏览器)的网络访问代理服务器,然后截取请求和请求结果达到分析抓包的目的。该软件是用Java写的,能够在Windows,Mac,Linux上使用。安装Charles的时候要先装好Java环境。

Charles的主要功能:

(1)截取Http 和 Https 网络封包。

(2)支持重发网络请求,方便后端调试。

(3)支持修改网络请求参数。

(4)支持网络请求的截获并动态修改。

(5)支持模拟慢速网络。

1. 下载
Charles下载地址

地址:https://www.charlesproxy.com/latest-release/download.do

2. 安装
一路按下next即可安装(保证电脑里没有其他charles即可)

3. 破解

Charles第一种破解方法:
打开汉化补丁 选择“中文破解版”,按下patch即可打开汉化补丁 选择“中文破解版”,按下patch即可

Charles第二种破解方法:

破解地址:https://www.zzzmode.com/mytools/charles/

生成jar文件后,放到charles安装目录的lib目录下

此时,重启charles,查看已经破解,如下图:

设置charles, Proxy->Proxy setting,就可以抓取http协议了(默认不用更改)

4. 进入界面

注意:安装好charles后,要先进行汉化破解再打开,如果先打开了软件,在汉化的话就会无效,只能重新安装再进行以上步骤。

二. 连接
1.PC抓包

由于charles会自动配置浏览器和工具的代理设置,所以说打开工具直接就已经是抓包状态了。直接打开网页就可以了。

注意:

(1)Charles支持抓去http、https协议的请求,不支持socket。

(网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket)

(2)防火墙关掉

点击上方的代理—windows代理

电脑charles客户端下载SSL证书

帮助—SSL代理—安装charles证书

选择当前用户

将所有的证书都放入下列存储—受信任的根证书颁发机构—下一步—完成

2.手机端抓包

使手机和电脑在一个局域网内,不一定非要是一个ip段,只要是同一个路由器下就可以了。

(1)首先利用cmd -config命令查看自己电脑的ip地址

 

配置代理服务器
菜单栏上选择“代理—代理设置,
填入代理端口xxxx
勾选启用透明HTTP代理

查看自己本机IP

(2)然后在手机端的wifi代理设置那里去进行相关的配置设置。

这里的代理服务器地址填写为电脑的ip地址,然后端口这里写8888(这个是charles的默认设置),如果自己修改了就写成自己所修改的端口就可以了。

 
配置完成,会看到一个charles与手机端的连接提示弹窗,选择allo即可。
(3)手机端抓包https

上述1、2步骤,只针对http请求。由于https协议的特殊性,所以要求电脑端和手机端都需要安装下证书,否则会看到返回的数据都是乱码。

a.电脑端证书下载

b. 手机端证书下载

在设备上打开这个网址 http://www.charlesproxy.com/getssl 安装 Charles SSL 证书。

注意,同一个手机对应不同电脑上的Charles都要分别下载证书进行认证,因为手机的证书是和电脑端的Charles一一配对的。

PS:ios手机,需要信任该证书

C.相关配置

选择Proxy | Proxy Settings,弹出proxy设置选项卡,勾选Enable SSL Proxying,在Location部份选择add,按如下图添加,抓取任意站点、443端口的数据。

 

3. 抓取的包全部出现unknow的解决方法

代理-SSL代理-启用SSL代理-添加 如图主机和端口都添加*。

继续:代理-SSL代理-启用SSL代理-添加 如图主机添加*,端口添加443.

如图所示即可完成 解决unknow问题。

如果个别情况出现unknow,可能是本身抓包软件存在个别漏抓问题。可以忽略

三. 功能

从左到右分别为:

(1)清除当前会话
(2)停止记录
(3)开始限流/停止限流
(4)开始断点/停止断点
(5)根据所写内容撰写新请求
(6)重发选定请求
(7)工具
(8)设置

1. 显示模式:有结构和序列两种模式
(1)结构模式:可以很清晰的看到请求的数据结构,而且是以域名划分请求信息的,可以很清晰的去分析和处理数据。

(2)序列:可以看到全部请求,这里的结果以数据请求的顺序来显示,可以根据时间、大小等自由排序

2. 模拟网速功能

在线上环境通常有些因为网速慢导致的bug,在本机无法重现,那时候就很抓瞎,模拟网速功能支持对带宽、利用率、往返延迟、字节进行配置,并且支持3G/4G或者其他网络模式。
上方工具栏的代理—限流设置—启用限流

3. 过滤设置

方法一:软件下方的过滤可以进行简单的过滤,在主界面的中部的Filter栏中填入需要过滤出来的关键字。例如我们的服务器的地址是:www.baidu.com,那么只需要在 Filter 栏中填入www.baidu.com即可。

方法二:上方工具栏的代理—记录设置—包括—添加

可以对网络请求进行过滤。
然后填入需要监控的协议,主机地址,端口号等。这样就可以只截取目标网站的封包了。

通常情况下,我们使用方法一做一些临时性的封包过滤,使用方法二做一些经常性的封包过滤。

方法三:在想过滤的网络请求上右击,选择“Focus”,之后在 Filter 一栏勾选上 Focussed 一项,如下图所示:

这种方式可以临时性的,快速地过滤出一些没有通过关键字的一类网络请求。

Charles安装及使用教程的更多相关文章

  1. 抓包工具Charles安装时需要注意的地方

    最新接到一个任务,需要为app端的升级提供新的接口.以前没有搞过这个,其实搞完之后也就那样!其中有很重要的一点,就是需要用到抓包工具,进行联调测试,观看app端的数据情况. 抓包工具最常用的两个:fi ...

  2. CentOS7下自定义目录安装mono+jexus教程

    一.阅读前须知: 1.本文属于安装完Centos7之后的步骤 2.如果还不了解mono,请点击mono 3.本篇主要内容是使用自定义目录安装mono+jexus教程,使用默认目录请查看使用默认目录安装 ...

  3. 【转】真正从零开始,TensorFlow详细安装入门图文教程!(帮你完成那个最难的从0到1)

    AI这个概念好像突然就火起来了,年初大比分战胜李世石的AlphaGo成功的吸引了大量的关注,但其实看看你的手机上的语音助手,相机上的人脸识别,今日头条上帮你自动筛选出来的新闻,还有各大音乐软件的歌曲& ...

  4. CentOS7下默认目录安装mono+jexus教程

    一.阅读前须知: 1.本文属于安装完Centos7之后的步骤 2.如果还不了解mono,请点击mono 3.本篇主要内容是使用默认目录安装mono+jexus教程,使用自定义目录请查看使用自定义目录安 ...

  5. << CocoaPods安装和使用教程 >>github code4app以及cocoachina 苹果官方文档

    developer.apple.com 英文搜索各个技术的官方介绍文档, 前提是英文过关 cocoachina ios最新新闻, 信息 code4app上有许多组件 http://www.code4a ...

  6. 手机抓包软件Charles安装使用实例 (流媒体播放测试可去下载的时刻检测)

    手机抓包软件Charles安装使用实例   浏览:5258 发布日期:2015/07/17 分类:技术分享 关键字: 手机抓包软件 Charles 大胡子的博客Charles安装使用实例 Charle ...

  7. webpack安装配置使用教程详解

    webpack安装配置使用教程详解 www.111cn.net 更新:2015-09-01 编辑:swteen 来源:转载 本文章来为各位详细的介绍一下关于webpack安装配置使用教程吧,这篇文章对 ...

  8. NSIS安装制作基础教程[初级篇], 献给对NSIS有兴趣的初学者

    NSIS安装制作基础教程[初级篇], 献给对NSIS有兴趣的初学者 作者: raindy 来源:http://bbs.hanzify.org/index.php?showtopic=30029 时间: ...

  9. 安装WordPress详细教程指南

    最近准备自己建一个个人博客,以便分享一些自己工作生活中的一些观点及经验,建博客当然选wordpress,毕竟wordpress是为博客而生的嘛.下边记录一下自己安装WordPress的详细过程指南,亦 ...

随机推荐

  1. C语言链队列

    链队列类似于单链表,为了限制只能从两端操作数据,其结构体内有2个指针分别指向头尾,但队列里的节点用另一种结构体来表示,头尾指针则为指向该结构体的类型.只能通过操作头尾指针来操作队列. typedef ...

  2. Xilinx与modelsim的仿真联调

    关于Xilinx与modelsim的仿真联调,尤其是仿真环境的搭建,网上的信息都比较零散,我当初在联调的时候遇到比较多的问题,也是折腾了两天才弄好,下面的步骤我总结得非常详细,可以帮助大家少走弯路. ...

  3. Android开发——支付宝和微信支付快速接入流程

    一.Android快速实现支付宝支付 1.首先,我们需要前往支付宝开放平台,申请我们的支付功能:https://open.alipay.com/platform/home.htm 支付宝首页 这里 有 ...

  4. 【CF813D】Two Melodies

    [CF813D]Two Melodies 题面 洛谷 题解 $dp$: 设$f[i][j]$表示第一个集合以$i$结尾.第二个集合以$j$结尾的合法长度之和最大是多少 明显有$f[i][j]=f[j] ...

  5. centos7.4 防火墙设置

    1.关闭默认的firewall防火墙 systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service ...

  6. bzoj4998 星球联盟

    bzoj4998 星球联盟 原题链接 题解 先按照输入顺序建一棵树(森林),然后用一个并查集维护联盟的关系,对于不是树上的边\(a-b\),就把\(a-lca(a,b),b-lca(a,b)\)全部合 ...

  7. directive 指令一

    什么是Directive Directive将一段html,js封装在一起,形成一个可以复用的独立个体,具有特定的功能.angularjs中的指令通常是比较小的组件,它相当于是给我们提供了一些公共的自 ...

  8. 一个web应用的诞生(12)--再探首页

    就要面对本章的一个难点了,说是难点可能仅仅对于我来说,毕竟我是一个js渣,既然首页打算使用动态加载的形式,那么与后台交互的方式就要进行选择,目前比较流行的为RESTful的形式,关于RESTful的文 ...

  9. 一个web应用的诞生(4)--数据存储

    上一章实现了登录的部分功能,之所以说是部分功能,是因为用户名和密码写成固定值肯定是不可以的,一个整体的功能,至少需要注册,登录,密码修改等,这就需要提供一个把这些值存储到数据库的能力. 当前的主流数据 ...

  10. oracle 查看锁表及解锁的语句

    解锁语句: alter system kill session 'sid, serial#'; alter system kill session '23, 1647'; 查询那些对象被锁: sele ...