Charles让你更方便的在Mac下抓取移动端http/https数据包(http://zhiqiangbuxi.cn/?p=281)
2017-04-27 19:30
381 查看
一、Charles是什么?
Charles是在Mac下常用的截取网络封包的工具(windows版本也有这里我就不介绍了方法都是一样的),我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。Charles通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析,尤其是调试移动端的数据包。Charles是收费软件,可以免费试用30天。破解 => 百度和Google就好。
截止这篇文章Charles最新版是v3.11.2,所以我也以这个版本来说明使用教程,下载地址:http://www.charlesproxy.com/download/
二、在PC上抓数据包
1.抓取http数据包第一步:启动Charles后,第一次请求你给它设置系统代理的权限。你可以输入登录密码授予Charles该权限。你也可以忽略该请求,然后在需要将Charles设置成系统代理时,选择菜单中的 “Proxy” -> “Mac OS X Proxy”来将Charles设置成系统代理。如下所示:
第二步(非必须):有的时候可能会出现Charles设置的代理端口被占用的情况,所以Charles支持设置动态端口,选择菜单中的 “Proxy” -> “Proxy settting”来设置动态端口。如下所示:
第三:你就可以看到源源不断的网络请求出现在Charles的界面中。
2.抓取https数据包
第一步:我们知道相比https相比http更安全因为其才用了ssl加密,如果没有得到证书信任,抓取的数据是乱码的,如下图百度首页我们抓取的数据是乱码:
第二步:导入证书,Charles提供了ssl证书让我们在客户端抓取https数据,只需以下几步简单的操作即可:选择菜单中的
“Help” -> SSL ProxyING” -> “install Charles…..”来将Charles设置成系统代理。如下所示:
之后会弹出Mac系统的密钥窗口,选择”信任”,然后输入mac的密码退出,这样证书导入完毕。
第三步:添加host和443端口
选择菜单中的 “Proxy” -> “SSL Proxy setting”如下图,添加一个空的Location,Charles就会抓取所有的https请求。最后点击确认就能抓取https的请求了,并能够成功解析https的数据包,如下图所示:
3.过滤网络请求,截取请求、编辑请求并重新发起
通常情况下,我们需要对网络请求进行过滤,只监控向指定目录服务器上发送的请求。在Charles的菜单栏选择”Proxy”->”Recording
Settings”,然后选择Include栏,选择添加一个项目,然后填入需要监控的协议,主机地址,端口号。这样就可以只截取目标网站的封包了。如下图所示我们只截取百度的请求:
4.截取请求、编辑请求并重新发起这个在Charels也能轻松实现,以截取新浪微博的首页面为主如图所示:
然后当我再次刷新微博首页面时浏览器会持续请求,然后微博的请求会被截断并跳转到Charles的窗口来,如下图:
在这个界面我们就可以修改请求信息,header/cookie都可以修改然后点击Execute重新发起修改后的请求。注意数据修改后记得取消断点,要不然截取的页面将无法访问。
以上便是Charles在Mac上使用,对于开发者来说极为方便,当然更方便的是调试手机的http/https请求,所以下面会说一下如何用charles抓取手机上的请求。
三、charles在手机端上抓数据包(需要保证你的手机和Mac在同一网段,即可,简单点连同一个wifi就可以了。)
1、配置手机端的http代理第一步:在mac的命令行下查看本机ip,如下截图:
第二步,配置手机的ip代理,iPhone的 “设置”->“无线局域网“中,可以看到当前连接的wifi名,通过点击右边的详情键,可以看到当前连接上的wifi的详细信息,包括IP地址,子网掩码等信息。在其最底部有“HTTP代理”一项,我们将其切换成手动,然后填上Charles运行所在的电脑的IP,以及charles
proxy setting设置的端口,如下图所示:
bb53
第三步,到这里配置已经完成,就这么简单,然后我们可以访问微博客户端(之前抓取朋友圈的红包照片也是如此操作),我们清晰的可以看到抓取的数据截图如下:
2、抓取手机端的https数据包
之前我们已经尝试了在PC端抓取https数据包,那么在手机上抓取数据包原理也是如此,也很简单只需要在按照上面条件配置好手机端的http代理后,然后访问http://www.charlesproxy.com/getssl
然后会下载一个ssl证书到手机上,点击确认之后就可以抓https的数据包了,截图如下成功抓取手机端访问百度的首页面数据,其他数据也是如此抓取:
3、模拟慢速网络
在做iPhone开发的时候,我们常常需要模拟慢速网络或者高延迟的网络,以测试在移动网络下,应用的表现是否正常。Charles对此需求提供了很好的支持。在Charles的菜单上,选择”Proxy”->”Throttle
Setting”项,在之后弹出的对话框中,我们可以勾选上“Enable Throttling”,并且可以设置Throttle Preset的类型。如下图所示:
注意:在PC上退出charles后手机端需要停用http代理否则手机无法正常上网。
相关文章推荐
- MAC系统利用charles抓取微信小程序和手机APP数据包(http和https数据包)
- Mac抓取移动端HTTP数据包 抓包工具 Charles 的使用
- Mac 移动端http、https抓包之Charles
- windows上利用charles抓取微信小程序数据包,手机APP数据包(HTTP与HTTPS数据包)
- Charles抓取HTTP、HTTPS的数据包
- Charles抓取HTTP、HTTPS的数据包
- Charles抓取HTTP、HTTPS的数据包
- Mac 上 Charles 抓取 iso http、https数据包
- 3.10以上charles版本抓取Https数据包
- Mac如何抓取ios中http、https请求的包
- Mac上Charles抓包Http和Https
- Mac下用Charles实现Android http和https抓包
- mac os charles 抓包http/https的简单使用介绍(附3.10.1mac破解版下载链接)
- Charles如何抓取http/https请求
- charles抓取微信小程序数据(抓取http和https数据)
- Charles 如何抓取https数据包
- Fiddler抓取移动端HTTP数据包
- android开发之在Mac用charles抓包(http,https)
- Mac 环境 下使用Charles 抓包Http/Https请求