Charles抓包软件简介

Charles简介:

Charles是一款抓包神器,因为他是基于 java 开发的,所以跨平台,Mac、Linux、Window下都是可以使用的,确保安装之前已经安装了JDK。Charles官网地址:https://www.charlesproxy.com

破解:

因为这款软件是收费的,只有30天的免费使用期限,不过不付费用户仍然可以继续使用,只是每次使用时间不能超过30分钟,且启动会有10秒的延时,但是还是可以凑合使用的。当然你也可以参照下面的方法进行破解,可能是新版本的原因,我亲自测试多次未成功,期待新的破解方式。

以下附上之前版本的破解方法:(要下载对应版本的 .jar 文件,网上百度下即可)

基本使用:

一. 抓取 HTTP 请求

  • Mac上抓取

    1. 将 Charles 设置成系统代理

      打开Charles之后。默认就对系统设置了代理,点击Charles菜单栏,选中 Proxy 菜单,勾选上 macOS Proxy ,已经勾选就不再设置,如下图所示:

    2. 设置支持 http 请求抓取

      在Proxy 菜单,选中Proxy Settings ,打开对话框,设置端口号(默认是8888,也可以自定义),并选中 Enable transparent Http proxying 选项,如下图所示:

    3. 发起HTTP请求

      此时就能在Charles中看见效果:

      Filter 可以对请求进行过滤,并且支持通配符,下面会讲到

  • 手机上抓取

    1. 找到Mac的IP地址

      系统偏好设置->网络 即可找到当前的IP地址:

      或者使用Charles,选中Charles,在“Help”菜单中选择“Local IP Addess”,即可:

    2. 在iPhone中设置

      在你的iPhone->设置->无线局域网,选中当前使用的WIFI,下拉至 HTTP代理处,选择手动,服务器行输入Mac上的IP地址,端口填8888即可,具体如下:

    3. 打开iPhone中的APP(有网络请求的),这时会看见Charles中已经拦截到数据了

      注意:

      当我们不抓包的时候,会将Charles关闭,这时候iPhone设备是访问不到网络的,因为设置了代理(就是Charles),这时候要将iPhone的代理关闭

二. 抓取 HTTPS 请求

Charles不仅能够抓取http协议的包,也能抓取https协议的包,但是由于https是经过加密的,因为抓取的包中的内容是以密文方式展现的,通过配置Charles的SSL可以方便的以明文查看https协议传输的内容

  • 安装证书

    1. Mac上安装证书

      选中Charles,在“Help”菜单中选择—>“SSL Proxying”—>“Install Charles Root Certificate”会自动打开钥匙串访问窗口:

    2. iPhone上安装证书

      iPhone上也要安装SSL证书,可以通过链接https://www.charlesproxy.com/documentation/additional/legacy-ssl-proxying/ 下载传到iPhone上,或者使用iPhone的Safari直接访问链接,下载对应的证书,然后安装即可。

      点击红色部分下载:

      最后点击完成即可!

  • 配置SSL

    选中Charles,在“Proxy”菜单中选择—>“SSL Proxying Settings ”即可弹出页面:

    添加要访问的地址的域名,默认https端口号为:443,并勾选上“Enable SSL Proxying”选项:

    也可以在host中输入: " * " 匹配所有,默认https端口号为:443, 如下所示:

    然后就能以明文方式查看https传输的详情了:

过滤网络请求

  • 通过Filter过滤

    Filter 栏中输入想要过滤出来的关键字,比如只想查看包含关键字:baidu 的请求,只需要在 Filter 栏中输入关键字:baidu 即可;当然也支持通配符,比如我们想要查看包含关键字:itunes,并且以 .com 结尾的请求,只需要在 Filter 栏中输入 itunes.*.com 即可,如下图所示:

  • 通过Include过滤

    可以通过 “Proxy”->“Recording Settings”,选中 Include 栏,添加一项, 设置需要抓取的包,比如我只想抓取 www.baidu.com 域名下的请求,可以按照如下设置:

    就能只去抓取符合规则的目标请求,当前也可以在 Exclude 中设置排除的请求。

  • 总结

    FilterInclude 的区别就是: Include 是只抓取符合要求的请求,不符合的请求就不再抓取,而 Filter 只是将先要抓取的请求筛选出来,但是还是去抓取了所有的请求;综合两者我们可以按照自己的需求进行设置如何筛选

模拟慢速网络

有时候开发中需要测试用户在网络情况比较的差的时候应用的表现情况,可以使用Charles限流设置,"Proxy" -> "Thorttle Settings" 中设置如下:

或者只针对某些域名进行设置,如下针对特定Hosts的设置:

重放和编辑

点击一个请求,右击弹出菜单栏,我们可以进行各种操作,比如复制、保存、编辑、重复请求等等,我们可以编辑修改任意请求信息,比如URL地址、端口、参数等等,点击“Execute”按钮即可发送修改后的请求:

通过 Repeat Advanced 高级重放功能可以作为简单的性能测试,可以设置重复次数、并发数以及延时等:

其他功能(待完善)

  • Breakpoints - 断点功能

    有时候对于一些特殊请求在发往服务器之前想要修改一些参数,或者在服务器响应完成之后修改响应信息,此时可以使用Charles的断点功能,类似Xcode中的断点调试,设置断点之后,当有网络请求的时候Charles会自动跳转到断点处,此时我们就能进行相关的修改,断点设置步骤:"Proxy" -> "Breakpoints Settings",弹出设置栏,选中 “Enable Breakpoints”,添加需要调试的请求即可调试:

  • Rewrite功能

    Rewrite功能适合对网络请求进行一些正则替换。

    通过“Tools”->"Rewrite ",进入设置页面,

    比如有这样一个需求,我们访问接口:http://httpbin.org/get,将返回的数据参数名“X-Request-Id”,修改成“X_id”,具体操作如下:

    原始的数据结构如图:

    设置Rewrite:

    设置之后重新请求接口,查看截取的请求结果,发现已经修改成了“X_id”,效果如下:

  • DNS Spoofing Settings

    DNS欺骗,就是把域名解析到一个假的IP上。一般的开发流程中,在上线之前都需要在测试环境中先行进行验证,而此时手机客户端请求的域名是不太容易改变的,可以通过设置 DNS 方式把域名转发到测试机上,通过“Tools”->"DNS Spoofing",进入设置页面

    比如要把所有 www.baidu.com 的域名转到 test.com 的服务器上,可以设置如下:

    此时再访问百度,会发现访问不了了!!

  • Map功能

    通过“Tools”-> “Map Remote” 或者 “Tools”-> “Map Local”,进入相应的页面设置

    1. Map Remote

      作用:将指定的网络请求重定向到另一个网址。

      应用:当我们请求某个接口 A ,假设 A 的地址为:http://abc.com/user?user_id=100, 但是由于后台还没有写好,这时候为了调试,我们可以将请求临时转到地址 B 上面;假设 B 的地址为 : http://10.1.1.111/user.json

      具体设置如下图:

    2. Map Local

      作用:将指定的网络请求重定向到本地文件。

      应用:当我们把一个请求返回的数据直接映射到本地,例如上面说的把请求 A 地址返回的数据内容映射到本地文件** user.json** 内,如下图所示:

    Map功能适用于长期的将某些请求重定向到另一个网络地址或者本地文件。

参考链接:

http://tech.365rili.com/?p=57

http://blog.devtang.com/2013/12/11/network-tool-charles-intr/

http://blog.csdn.net/holemole/article/details/51383513

http://www.cocoachina.com/ios/20161116/18079.html

http://blog.csdn.net/jiangwei0910410003/article/details/41620363/

https://www.charlesproxy.com/download/

http://www.jianshu.com/p/4a6eb5aad398

总结:

还有 缓存功能、设置黑名单 等等,在此就不再写了,都还是很简单的;

还有待研究的就是 socket 请求的抓取!!!

至此:结束2天的Charles学习

时间: 08-07

Charles抓包软件简介的相关文章

Charles抓包工具简介

1. 简介 Charles 是在 Mac 下常用的网络封包截取工具,为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析. Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析. 除了在做移动开发中调试端口外,Charles 也可以用于分析第三方应用的通讯协议.配合Charles的 SSL 功能,Charles 还可以分析 Https 协议. Charles 是收费软件,可以免费试用 30 天.试用期过后,未付费的

Mac用户抓包软件Charles 4.0 破解 以及 抓取Https链接设置

相信大家曾经都是Window的用户,作为前端哪能没有一款抓包工具,抓包工具可以非常便捷的帮助我们分析接口返回报文数据,快速定位问题. 曾经横扫window用户的Fiddler便是我们的挚爱,然而,作为前端开发者还是习惯用高大上的MAC进行开发,本次博客将给大家介绍MAC电脑如何安装抓包工具,以及如何设置HTTPS连接的抓取. 一.下载Charles 4.0 版本的软件. 链接: https://pan.baidu.com/s/1jI5j0O2 密码: u5r2 下载完成后,双击安装即可,直到安装

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

手机抓包软件Charles安装使用实例 浏览:5258 发布日期:2015/07/17 分类:技术分享 关键字: 手机抓包软件 Charles 大胡子的博客Charles安装使用实例 Charles安装 手机抓包软件Charles 因为项目要用到,于是折腾了下,现在把自己做的笔记发出来,有兴趣的可以看看,避免大家走弯路 更多技术文章请访问: http://www.dahuizhi.com Charles上的设置要截取iPhone上的网络请求,我们首先需要将Charles的代理功能打开.在Char

比Wireshark更轻量、更方便的抓包软件:Charles

转:http://blog.csdn.net/lixing333/article/details/42776187 之前写过一篇通过Wireshark进行抓包,分析网络连接的文章<通过WireShark抓取iOS联网数据实例分析>:http://blog.csdn.net/lixing333/article/details/7782539 最近一些工作需要抓包,在我的Mac上安装了Wireshark之后,发现运行不了.探究之,发现Wireshark的界面用的是X Window,所以需要在X11

Charles 抓包

声明:本文为依依Love博主原创文章,未经博主允许不得转载 1. 简介: 2. 安装包下载: 3. 安装并替换破解版的jar包 4.设置mac代理 5.  安装证书: 6.  设置手机抓包 1. 简介: Charles(http://www.charlesproxy.com/)是在Mac 下常用的截取网络封包的工具.Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析 功能: charles的功能 1>.支持SSL代理,可

jmeter数据库,charles抓包,Python循环语句

jmeter数据库,charles抓包,Python循环语句 一.Jemeter数据库 添加jar包数据库 jemeter=>浏览 添加JDBC Connection Configuration 配置数据 mysqlurl:jdbc:mysql://ip:port/db?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true driver class:com.mysql.jdbc.Driver       4. 操作

Charles抓包工具的使用(一)

前提:charles的说明 Charles其实是一款代理服务器,通过过将自己设置成系统(电脑或者浏览器)的网络访问代理服务器,然后截取请求和请求结果达到分析抓包的目的.该软件是用Java写的,能够在Windows,Mac,Linux上使用.安装Charles的时候要先装好Java环境. Charles的主要功能: (1)截取Http 和 Https 网络数据包. (2)支持重发网络请求,方便后端调试. (3)支持修改网络请求参数. (4)支持网络请求的截获并动态修改. (5)支持模拟慢速网络.

C#版的抓包软件

C#版的抓包软件 [创建时间:2015-09-10 22:37:04] NetAnalyzer下载地址 不好意思啊,NetAnalyzer停更有点长了,今天继续填坑^&^ NetAnalyzer实现结构 在上一篇中介绍一点VC++开发环境的配置,与基本的运行方式.因为NetAnalyzer使用的C#作为开发语言,所以在此主要介绍一些在C#环境下的开发环境的配置,与一些基本开发情况,力求在完成本篇后后,读者可以制作一个简单的抓包程序. 在开始编程前先要介绍连个.Net类库SharpPcap.dll

抓包软件PowerSniff开发计划

目前抓包的工具不顺手: (1)smartsniff, minisniffer不支持插件 (2)wireshark,omnipeek插件过于复杂,还有不是要装驱动就是admin权限 打算重写一个,第一个版本预计150小时,如果只是简单功能可能50小时就够了,打算做完善一些,也许会有人用得着. 杂乱想法: (1)体积要小,做成单个exe文件,smartsniff, minisniffer都不到200k,所以最终不会超过500k(开发环境用tdm-gcc),程序大小的想法可能有点无聊 (2)gui 使