Charles抓包软件简介
Charles简介:
Charles是一款抓包神器,因为他是基于 java 开发的,所以跨平台,Mac、Linux、Window下都是可以使用的,确保安装之前已经安装了JDK。Charles官网地址:https://www.charlesproxy.com
破解:
因为这款软件是收费的,只有30天的免费使用期限,不过不付费用户仍然可以继续使用,只是每次使用时间不能超过30分钟,且启动会有10秒的延时,但是还是可以凑合使用的。当然你也可以参照下面的方法进行破解,可能是新版本的原因,我亲自测试多次未成功,期待新的破解方式。
以下附上之前版本的破解方法:(要下载对应版本的 .jar 文件,网上百度下即可)


基本使用:
一. 抓取 HTTP 请求
Mac上抓取
将 Charles 设置成系统代理
打开Charles之后。默认就对系统设置了代理,点击Charles菜单栏,选中 Proxy 菜单,勾选上 macOS Proxy ,已经勾选就不再设置,如下图所示:

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


发起HTTP请求
此时就能在Charles中看见效果:


Filter 可以对请求进行过滤,并且支持通配符,下面会讲到
手机上抓取
找到Mac的IP地址
系统偏好设置->网络 即可找到当前的IP地址:


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

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

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

注意:
当我们不抓包的时候,会将Charles关闭,这时候iPhone设备是访问不到网络的,因为设置了代理(就是Charles),这时候要将iPhone的代理关闭
二. 抓取 HTTPS 请求
Charles不仅能够抓取http协议的包,也能抓取https协议的包,但是由于https是经过加密的,因为抓取的包中的内容是以密文方式展现的,通过配置Charles的SSL可以方便的以明文查看https协议传输的内容
安装证书
Mac上安装证书
选中Charles,在“Help”菜单中选择—>“SSL Proxying”—>“Install Charles Root Certificate”会自动打开钥匙串访问窗口:






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 中设置排除的请求。
总结
Filter 和 Include 的区别就是: 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”,进入相应的页面设置
Map Remote
作用:将指定的网络请求重定向到另一个网址。
应用:当我们请求某个接口 A ,假设 A 的地址为:http://abc.com/user?user_id=100, 但是由于后台还没有写好,这时候为了调试,我们可以将请求临时转到地址 B 上面;假设 B 的地址为 : http://10.1.1.111/user.json
具体设置如下图:


Map Local
作用:将指定的网络请求重定向到本地文件。
应用:当我们把一个请求返回的数据直接映射到本地,例如上面说的把请求 A 地址返回的数据内容映射到本地文件** user.json** 内,如下图所示:

Map功能适用于长期的将某些请求重定向到另一个网络地址或者本地文件。
参考链接:
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学习
Charles抓包软件简介的更多相关文章
- macOS 安装安卓模拟器 并用charles抓包
mac上面安装安卓模拟器并能使用charles抓包软件调研 一.Genymotion 1.先下载Virtua Box虚拟机 https://www.virtualbox.org/wiki/Downlo ...
- 手机抓包软件Charles安装使用实例 (流媒体播放测试可去下载的时刻检测)
手机抓包软件Charles安装使用实例 浏览:5258 发布日期:2015/07/17 分类:技术分享 关键字: 手机抓包软件 Charles 大胡子的博客Charles安装使用实例 Charle ...
- Mac用户抓包软件Charles 4.0 破解 以及 抓取Https链接设置
相信大家曾经都是Window的用户,作为前端哪能没有一款抓包工具,抓包工具可以非常便捷的帮助我们分析接口返回报文数据,快速定位问题. 曾经横扫window用户的Fiddler便是我们的挚爱,然而,作为 ...
- 比Wireshark更轻量、更方便的抓包软件:Charles
转:http://blog.csdn.net/lixing333/article/details/42776187 之前写过一篇通过Wireshark进行抓包,分析网络连接的文章<通过WireS ...
- charles抓包工具分享
今天,给大组内QA做了一次分享,主要面向移动端测试,介绍了我平时在测试工作中用到的功能,大家都积极响应,现场搭环境,现场操作,现场提问解答,最后大家都成功的利用起来了,感觉很有成就感.下面介绍我今天分 ...
- charles 抓包 (一)
在web.app开发中经常需要通过抓包来定位页面.接口返回数据的问题.在mac系统中,charles是一款功能丰富的抓包软件.可以实现app的数据抓包. 工具:charles 附送charles的破解 ...
- charles抓包
charles使用教程指南 charles使用教程指南 前言 移动APP抓包 PC端抓包 查看模式 其他功能 问题汇总 1. 前言: Charles是一款抓包修改工具,相比起burp,charles具 ...
- Charles 抓包
声明:本文为依依Love博主原创文章,未经博主允许不得转载 1. 简介: 2. 安装包下载: 3. 安装并替换破解版的jar包 4.设置mac代理 5. 安装证书: 6. 设置手机抓包 ...
- Charles抓包工具使用
Charles抓包工具使用和进行接口数据模拟 打开软件,选择Tools >> Map Local >> 勾选enable >> add >> ...
随机推荐
- 爬虫 selenium+Xpath 爬取动态js页面元素内容
介绍 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如 ...
- memcache的基本操作
1.linux下启动memcache [root@localhost ~]# memcached -d -m 512 -u root -p 12266 -c 256 参数名称及意义: -d 以守护 ...
- Django ---- 框架简介
MVC框架和MTV框架 mvc,全名是 Model View Controller, 是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Cont ...
- Go语言--数组、切片、
3.1 数组--固定大小的连续空间 3.1.1 声明数组 写法 var 数组变量名 [元素数量]T 说明: 变量名就是使用时的变量 元素的数量可以是表达式,最后必须为整型数值 T 可是是任意基本类型, ...
- 全面剖析XMLHttpRequest对象
XMLHttpRequest对象是当今所有AJAX和Web 2.0应用程序的技术基础.尽管软件经销商和开源社团现在都在提供各种AJAX框架以进一步简化XMLHttpRequest对象的使用:但是,我们 ...
- 基于tkinter的GUI编程
tkinter:tkinter是绑定了Python的TKGUI工具集,就是Python包装的Tcl代码,通过内嵌在Python解释器内部的Tcl解释器实现的,它是Python标准库的一部分,所以使用它 ...
- 学习java23种设计模式自我总结
首先先做个广告,以前看过@maowang 这位大神转的Java开发中的23种设计模式详解(转) ,但是看了之后都忘差不多了, 所以,开个帖子边学习边自我总结(纯手敲).一直以来像这种需要长久的运动,真 ...
- JVM内存结构--新生代及新生代里的两个Survivor区(下一轮S0与S1交换角色,如此循环往复)、常见调优参数
一.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能.你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我 ...
- 激活windows专业版(激活windows10专业版,解决“我们无法在此设备上激活windows因为无法连接到你的组织的激活服务器 ”)
本来系统用的好好的,但是前几天系统突然提示我要去取设置里面激活windows,我就想:我的系统好像是原厂正版的吧,怎么就过期了呢?没办法只能搜索下怎么激活,去系统城,各大网站什么的试了好多密钥全部不行 ...
- IBOS云办公系统二次开发之功能介绍(PHP技术)
IBOS自动化办公系统是我见到的功能.架构最好的开源自动化办公系统,功能与企业需求吻合度之高.架构之灵活,让我不得不将之介绍给大家,让跟多需要学习PHP开发的朋友来了解她,拥抱她! 如果您还没有很好的 ...