前言

虽然实习工作还没有着落,但学习还是要继续的嘛,今天就来学习使用下 Mac 下截取网络封包的工具:Charles

我想,如果你是个善于利用搜索引擎的人,那么在 Google 中输入「Charles 使用」等相应的关键字,便会出现一大把文章。
不过呢,之所以会有这篇文章,就是因为今天在安装和初步使用的过程中,遇到了些问题,而目前搜索出来的绝大数文章并没有提及(或者解决办法已经过时)。所以,我在此记录下来,希望能帮助到通过搜索找到这的朋友们。


付费 & 正版 & 破解

Charles 是收费软件,可以免费试用 30 天。试用版本每次使用时间不能超过 30 分钟,使用过程中不定时会中断 5 秒钟,并且启动时将会有 10 秒种的延时。因此,该试用方案对广大用户还是相当友好的,只是当你需要长时间进行封包调试时,会因为 Charles 强制关闭而遇到影响。

如果手头经济宽裕,建议上官网购买正版。

除此之外,网上也有破解版,在 http://charles.iiilab.com/ 这个网站可以下载到Charels各个版本的破解版。


VPN

当我打开 Charles(Mac OS X Proxy 已选择),按理说,我立刻就能看见源源不断的网络请求出现在 Charles 的界面中啦,可为什么始终是一片空白呢?

一番搜索,终于在这里 Charles proxy not working with Chrome 找到了答案:

For anyone else using VPN: Charles must be turned on before VPN. So quitting VPN after turning on Charles won’t work either.

没办法,为了正常使用 Charles,只能暂时把梯子撤了:


乱码

刚开始用着挺好的啊,怎么一言不合,就来个乱码呢?

于是,便在 Google 中输入「Charles 乱码」,我保证,你能搜到的绝对是这样的答案:

可我告诉你,反正我尝试了在各种地方进行添加,最后都没有成功。
而我最终解决了乱码的问题,但根本没有涉及到 Info.plist。你只要确保,我接下来提及的问题,你有正确进行设置。

安装 SSL 证书

Mac 端

首先去 http://www.charlesproxy.com/ssl.zip 下载 CA 证书文件,然后双击 .crt 文件,选择「总是信任」按钮,在钥匙串访问中即可看到添加成功的证书。

看看,人家说的多么简单啊,可事实呢?当我访问上述网址时,出现的是如下的文字:

If you are running Charles v3.10 or later, please go to Charles and consult the SSL Proxying submenu in the Help menu, for instructions on installing your new Charles Root Certificate.

我那蹩脚的英文告诉我:如果你使用的是 v3.10 及之后的版本,安装方法已经变了,正确的姿势:启动 Charles 软件,在菜单中找到 Help -> SSL Proxying -> Install Charles Root Certificate. 如下图所示:

随后是这样的:


iPhone 端

步骤:Help -> SSL Proxying ->Install Charles Root Certificate on a Mobile Device…

Mac 上的设置

  1. 在 Charles 的工具栏上点击设置按钮,选择 SSL Proxy Settings,选中 Enable SSL Proxying。(别急,选完先别关掉)

  2. SSL 选项卡的 Locations 里填写要抓包的域名和端口,点击 Add 按钮,在弹出的表单中 Host 填写域名。比如填api.instagram.com,Port 填 443

关于乱码,如果没有做这项操作,则肯定会出现乱码。而至于否是在 Info.plist 中添加 UTF-8 的字段,反正最后我没加,但一切正常。

所以这个坑,我也是无意间解决的。

iPhone 上的设置

首先我们需要获取 Charles 运行所在电脑的 IP 地址,Charles 的顶部菜单的 “Help”->”Local IP Address”,即可在弹出的对话框中看到 IP 地址,如下图所示:

然后就是在 iPhone 上的一系列操作,又是很简单,有木有!

可是,为什么尼玛我怎么试都不成果呢?!iPhone 上浏览器网址都打不开了….于是又尝试了另一种方式,在终端敲入 ifconfig en0

Done! 终于可以愉快的玩耍了:)

抓包工具 Charles 使用心得的更多相关文章

  1. mac端的优秀抓包工具——Charles使用

    http://my.oschina.net/u/2340880/blog/508688 mac端的优秀抓包工具——Charles使用 一.简介 二.安装与使用 三.使用Charles在mac上进行抓包 ...

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

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

  3. 抓包工具charles使用教程指南

    0x01 前言: Charles是一款抓包修改工具,相比起burp,charles具有界面简单直观,易于上手,数据请求控制容易,修改简单,抓取数据的开始暂停方便等等优势!下面来详细介绍下这款强大好用的 ...

  4. Mac 下抓包工具 Charles 修改特定请求

    Charles 是 Mac 下常用的抓包工具,它通过将自己设置成系统的代理服务器,从而完成了抓包的工作. 同类的工具还有 fiddler 和 Wireshark,其中 fiddler 是微软公司使用 ...

  5. 抓包工具Charles的使用教程

    参考:https://zhubangbang.com/charlesproxy 如果您是您一次使用Charles,可能对下面的感兴趣. Charles破解版免费下载和安装教程 Charles手机抓包设 ...

  6. postman 抓包工具charles的使用

    1.直接打开charles,然后,如果有https的话,需要安装证书,然后,设置代理 2.如果不是https的,不需要设置代理,直接抓取就可以 先安装证书: 然后设置代理:               ...

  7. Http/Https抓包工具Charles最新版破解教程(Windows|Mac)

    Charles介绍 Charles是一款强大的http/https抓包工具,可以抓取各种数据请求,查看请求的头信息,请求信息,返回信息等.本文主要介绍Charles的破解过程,包括Windows平台和 ...

  8. 接口测试中抓包工具Charles的使用

    在被测接口并没有明确的接口文档给出时,我们需要借助抓包工具来帮助测试,利用抓包工具我们几乎可以获得接口文档中能给你的一切.常见的抓包工具有Charles和Fiddler, Fiddler只能用在Win ...

  9. 抓包工具Charles的使用说明

    Charles介绍&前期准备: Charles介绍:Charles跟fiddler是目前行业中比较常用的抓包工具,这里主要介绍Charles的使用,fiddler的使用类似. 前期准备:使用前 ...

随机推荐

  1. java Servlet接口及应用(转)

    基本类和接口 一.javax.servlet.Servlet接口 servlet抽象集是javax.servlet.Servlet接口,它规定了必须由Servlet类实现由servlet引擎识别和管理 ...

  2. jumpserver跳板机

    一.安装依赖包 yum -y install epel-release yum clean all && yum makecache yum -y update yum -y inst ...

  3. css grid布局的首次使用

    首先来看一下效果图 接下来废话不多说,先上代码 <!DOCTYPE html> <html lang="en"> <head> <meta ...

  4. 以正确的姿势实现一棵JavaScript菜单树

    菜单树是常见的前端特效, 一般长下面这样 还有各种形态的变种, 有长这样的 也有长这样的 尽管这些菜单的相貌都不尽相同, 在功能实现的本质上却都是相同的.实现程序的大致流程如下 读取服务器端的菜单数据 ...

  5. WPF自定义控件(1)——仪表盘设计[1]

    0.小叙闲言 又接手一个新的项目了,再来一次上位机开发.网上有很多控件库,做仪表盘(gauge)的也不少,功能也很强大,但是个人觉得库很臃肿,自己就计划动手来写一个控件库,一是为学习,二是为了项目.下 ...

  6. 初步了解关于js跨域问题

    js跨域问题是指在js在不同的域中进行数据传输或者数据通信,比如通过ajax向不同的域请求数据(说到ajax,不可避免的就会遇到两个问题:一是ajax是如何传递数据的?二是ajax是如何实现跨域的?) ...

  7. 关于php 高并发解决的一点思路

    涉及抢购.秒杀.抽奖.抢票等活动时,为了避免超卖,那么库存数量是有限的,但是如果同时下单人数超过了库存数量,就会导致商品超卖问题.那么我们怎么来解决这个问题呢,我的思路如下(伪代码): sql1:查询 ...

  8. 浅谈MVC页面之间参数传递

    关于MVC页面之间的传值,有多种方式,下面,我们就Html.RenderAction 方式 和 Html.RenderPartial 方式 来给大家分享一下有什么不同. 一.Html.RenderAc ...

  9. JS属性描述符

    var myObject = { a:2 }; Object.getOwnpropertyDescriptor(myObject,"a"); { value:2, writable ...

  10. 你想要的都在这里,ASP.NET Core MVC四种枚举绑定方式

    前言 本节我们来讲讲在ASP.NET Core MVC又为我们提供了哪些方便,之前我们探讨过在ASP.NET MVC中下拉框绑定方式,这节我们来再来重点看看枚举绑定的方式,充分实现你所能想到的场景,满 ...