一、Charles简介

1.Charles是一款代理服务器,通过成为电脑或者浏览器的代理,而后截取请求和请求结果达到抓包目的。

2.Charles是用Java写的,能够在Windows,Mac,Linux上使用。

3.Charles支持抓取http、https协议的请求,不支持socket。

4.Charles会自动配置IE浏览器和工具的代理设置,打开工具就已经是抓包状态。

5.Charles能够让开发者查看所有网络和机器之间的HTTP流量情况,包括请求、响应、HTTP头信息(包含cookies和缓存等),可以检查HTML、CSS和RSS内容是否标准,用于网页的开发和调试等。

二、Charles主要用途

1.支持SSL(Secure Sockets Layer 安全套件层)代理,可以截取分析SSL请求。

2.支持流量控制,可以模拟慢速网络以及等待时间(Latency)较长的请求。

3.支持重发网络请求,方便后端调试。

4.支持修改网络请求参数(客户端向服务器发送时,可以修改后再转发出去)。

5.支持网络请求的截获并动态修改。

6.支持AJAX调试,可以自动将json或xml数据格式化,方便查看。

7.支持AMF调试,可以将Flash Remoting 或 Flex Remoting信息格式化,方便查看。

8.检查HTML、CSS和RSS内容是否符合W3C标准。

9.支持模拟慢速网络,主要是模仿手机2G/3G/4G 的访问流程。

10.支持本地映射和远程映射,比如可以把线上资源映射到本地某个文件夹下,这样可以处理一些特殊情况下的 bug 和线上调试(网络的 css,js 等资源用的是本地代码,可本地随便修改,数据之类是线上环境,方便在线调试);

11.可以抓手机端访问的资源(如果是配置 HOST 的环境,手机可以借用 host 配置进入测试环境)。

三、Charles原理

Charles相当于一个插在服务器和客户端之间的“过滤器”,当客户端向服务器发起请求的时候,先到Charles 进行过滤,然后Charles再把最终的数据发送给服务器。

注意:此时 Charles 发给服务器的数据,不一定是客户端请求的数据;Charles 在接到客户端的请求时可以自由的修改数据,甚至可以直接 Block 客户端发的请求。

服务器接收请求后的返回数据,也会先到Charles,经过Charles过滤后再发给客户端。同理,客户端接收的数据,不一定就是服务器返回的数据,而是Charles给的数据;正因为上面的原理,所以Charles能实现的功能,对前端开发者来说非常有吸引力,相当于请求和响应都可控,而且Charles为了控制更加方面,提供了很多简洁的操作。

三、Charles常用功能

1.过滤网络请求

2.模拟慢速网络

3.修改网络请求内容

4.给服务器做压力测试

四、Charles破解安装

相对于Wireshark,Fiddler,HttpWatch等抓包工具,Charles更加简单明了。

Charles 是收费软件,可以免费试用 30 天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过 30 分钟,并且启动时将会有 10 秒种的延时。因此,该付费方案对用户算相当友好的,即使长期不付费,也能使用完整的软件功能。只是当需要长时间进行封包调试时,会因为 Charles 强制关闭而遇到影响。

(目前最新版本是 V4.5.4 ,CharlesV4.5.4安装包及对应破解补丁jar包下载可在ITester软件测试小栈后台回复“Charles”获取。)

破解安装步骤:

1.安装Charles前先装好Java环境;

2.点击charles-proxy-4.5.4.msi执行安装,若安装后提示the error code is 2503。

解决办法:打开任务管理器 ->文件->运行新任务-> 输入【程序安装全路径+后缀名】->勾选“以系统管理权限创建此任务”,如图所示:

3.破解Charles:下载安装Charles后,将破解补丁jar包粘贴到charles的lib文件下,然后将原来命名为charles.jar文件替换掉即可;

macOS:/Applications/Charles.app/Contents/Java/charles.jar

Windows: C:\Program Files\Charles\lib\charles.jar(默认安装在C盘,否则找到自己安装的对应目录)

五、Charles抓包配置

将 Charles 设置成系统代理:选择菜单中的 “Proxy” -> “Mac OS X Proxy/windows proxy” 来将 Charles 设置成系统代理。

六、Charles常用功能介绍

(1)过滤网络请求

通常情况下,我们需要对网络请求进行过滤,只监控向指定目录服务器上发送的请求。对于这种需求,有以下几种办法:

方法一:在主界面的中部的 Filter 栏中填入需要过滤出来的关键字。例如微信公众平台的地址是:https://mp.weixin.qq.com , 那么只需要在 Filter 栏中填入weixin 即可。

方法二:在 Charles 的菜单栏选择 “Proxy”–>“Recording Settings”,然后选择 Include 栏,选择添加一个项目,然后填入需要监控的协议,主机地址,端口号。这样就可以只截取目标网站的封包了。如下图所示:

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

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

(2)模拟慢速网络

在做移动开发的时候,我们常常需要模拟慢速网络或者高延迟的网络,以测试在移动网络下,应用的表现是否正常,Charles 对此提供了很好的支持。

在 Charles 的菜单上,选择 “Proxy”–>“Throttle Setting” 项,在之后弹出的对话框中,我们可以勾选上 “Enable Throttling”,并且可以设置 Throttle Preset 的类型。如下图所示:

如果我们只想模拟指定网站的慢速网络,可以再勾选上图中的 “Only for selected hosts” 项,然后在对话框的下半部分设置中增加指定的 hosts 项即可。

(3)修改网络请求内容

有些时候为了调试服务器的接口,我们需要反复尝试不同参数的网络请求。Charles 可以方便地提供网络请求的修改和重发功能。

1.在相应的网络请求上点击右键,选择 “Breakpoints”;

2.重新执行这个请求;

3.点击edit,编辑请求,点击execute;

4.进入编辑响应页面,点击execute。

5.查看手机端响应结果。

注意:compose也能达到相同效果,但仅针对当前此次请求。而打了断点,每次发送这个请求,都会要求去编辑。

(4)给服务器做压力测试

我们可以使用 Charles 的 Repeat 功能来简单地测试服务器的并发处理能力,方法如下:

我们在想打压的网络请求上(POST 或 GET 请求均可)右击,然后选择 「Repeat Advanced」菜单项,如下所示:

可以发现该请求的处理时间,是随着迭代次数的增加和并发数的增加而增加的。

想要获取相关资料和软件 ?

Q群:727998947

Charles破解安装及基本使用的更多相关文章

  1. Charles 破解版免费下载和注册安装教程

    本文参考:[Charles 破解版免费下载和注册安装教程](https://www.axihe.com/tools/charles/charles/free-use.html) **软件开发不易,请尽 ...

  2. charles Windows 安装

    本文参考:charles Windows 安装 在实际开发.测试中需要通过代理截取 app 的网络请求报文来快速定位问题.https 双向认证的 app 越来越多,fiddler在这方面并不好用.由于 ...

  3. charles 的安装和手机配置 (我用的win7系统 ,和 iphone8 的配置)

    2018/12/17 由于想抓一下某个手机上app的数据,然后就装了charles,纯记录一下,便于以后不用再查资料.个人参考的网址:https://blog.csdn.net/weixin_4233 ...

  4. Charles破解注册

    Charles破解注册English 本页面会持续更新Charles最新版破解注册方法,建议加入收藏 Charles 4.1.2 下载Charles v4.1.2 并安装 云盘下载: Windows ...

  5. Charles的安装及设置

    1. Charles的安装 l  下载安装包 l  安装:按照提示信息一步步安装,不做多余解释 l  破解:将Charles.jar包放在安装目录,如D:\Program Files\Charles\ ...

  6. 下破解安装Python开发工具WingIDE4.1

    步骤: 1.将系统时间调整到一个月之前,然后执行安装. 可以使用date命令调整系统时间,如:date -s '2012-08-14 10:00:00' 2.安装成功后,打开程序,按照提示信息,申请一 ...

  7. 破解安装 SecureCRT 7.0.2 for mac完美破解版,mac secureCRT , apple secureCRT

    mac secureCRT , apple secureCRT 下载地址:http://download.csdn.net/detail/guolichun/7733069 破解安装  SecureC ...

  8. UML开发工具Rose ralation的破解安装,

    UML开发工具Rose ralation的在windows764破解安装, 安装下载还可以参考:http://www.cnblogs.com/leaven/p/3718361.html 跟大家分享怎么 ...

  9. 最新版Charles破解方法(Mac+Windows).md

    Charles 破解 去网站 http://charles.iiilab.com/ 下载相对应的版本 下载破解文件 charles.jar http://charles.iiilab.com/ 替换掉 ...

随机推荐

  1. Linux的命令(待更新)

    本文说明: ①本文格式: 序号.命令 详解,用文字或者代码 举例: ②本文索引: 1.设置IP 2.ps -aux 3.grep 4. | 1.设置IP 如果本地网卡eth0已经启动,就可以用下面的命 ...

  2. Vim升华之树形目录插件NERDTree安装图解(ubuntu)

    此文经验证:为真 http://www.linuxidc.com/Linux/2013-06/86048.htm

  3. spring5 源码深度解析----- @Transactional注解的声明式事物介绍(100%理解事务)

    面的几个章节已经分析了spring基于@AspectJ的源码,那么接下来我们分析一下Aop的另一个重要功能,事物管理. 事务的介绍 1.数据库事物特性 原子性多个数据库操作是不可分割的,只有所有的操作 ...

  4. R-forestplot包| HR结果绘制森林图

    本文首发于“生信补给站”微信公众号,https://mp.weixin.qq.com/s/2W1W-8JKTM4S4nml3VF51w 更多关于R语言,ggplot2绘图,生信分析的内容,敬请关注小号 ...

  5. Azure pipeline 配置根据条件执行脚本

    Azure pipeline 配置根据条件执行脚本 Intro 我的应用通过 azure pipeline 来做持续集成,之前已经介绍了根据不同分支去打包不同的package,具体的就不再这里详细介绍 ...

  6. CSS3属性—— line-clamp控制文本行数

    说明: 限制在一个块元素显示的文本的行数. -webkit-line-clamp 是一个 不规范的属性(unsupported WebKit property),它没有出现在 CSS 规范草案中. 为 ...

  7. [Vijos] 遭遇战

    背景 你知道吗,SQ Class的人都很喜欢打CS.(不知道CS是什么的人不用参加这次比赛). 描述 今天,他们在打一张叫DUSTII的地图,万恶的恐怖分子要炸掉藏在A区的SQC论坛服务器!我们SQC ...

  8. 使用TryGetComponent取代GetComponent以避免Editor中的内存分配

    作为Unity开发人员,可能或多或少都会遇到过一个常见的Unity的GC分配问题——在Editor中使用GetComponent方法来获取一个不存在的Component时会分配额外的内存.就像下图 需 ...

  9. Hyper-V 下linux虚拟机静态IP上网配置的两种方式(2)

    工作需要,搭建linux环境,网上搜了两种Hyper-V配置linux静态IP及上网的方式,记录一下,方便查阅,如下设置网络共享方式: win10下使用hyper-v在本机安装linux虚拟机后,网络 ...

  10. B站自动刷弹幕

    B站自动填弹幕(附带createEvent消息机制) 昨晚看的比赛真的要气死我.RNG 居然又输了... 为了LPL...我写了一个为LPL加油的脚本.希望大家能和我一起为LPL加油! 脚本代码如下: ...