charles 是一个功能强大的跨平台抓包工具,有window, linux, mac版本。操作简单,界面美观,性能可靠。尤其是用来作为手机代理,可以很方便的破解手机app的通讯过程。

下面就简单介绍一下如何安装和使用。由于我使用的linux系统,所以是以linux版本为例,其他系统的请参考调试。

关于正版

Charles 是收费软件,可以免费试用 30 天。试用期过后,未付费的用户仍然可以继续使用, 但是每次使用时间不能超过 30 分钟,使用过程中不定时会中断 5 秒钟,并且启动时将会有 10 秒种的延时。 因此,该付费方案对广大用户还是相当友好的,即使你长期不付费,也能使用完整的软件功能。 只是当你需要长时间进行封包调试时,会因为 Charles 强制关闭而遇到影响。当然,没有什么是天朝的网民无法破解的, 我使用的也是破解版,(下面会提供下载地址)。

安装

如果想要正版的就去官网下载 https://www.charlesproxy.com/download/latest-release/

这里提供一个linux的破解版下载 百度网盘

安装很简单,先解压,然后charles.jar 拷贝到 charles/lib下就好了

cd charles/bin
./charles  #启动

主要功能

  • 截取 Http 和 Https 网络封包。
  • 支持重发网络请求,方便后端调试。
  • 支持修改网络请求参数。
  • 支持网络请求的截获并动态修改。
  • 支持模拟慢速网络。

配置代理

打开charles之后,配置代理服务端口,选择菜单 “Proxy” ->”Proxy Settings” 进入如下界面,设置代理端口,默认为8888,同时勾选下面的Enable transparent HTTP proxying(允许透明代理)。

过滤请求

你可以选择只监听某个网站的请求或者过滤某些网站的请求,避免干扰。

选择菜单 “Proxy” -> “Recording Settings”, 会弹出如下菜单:

上面有3个选项卡,你可以分别设置数据包大小,指定包含或者不包含哪些域名的请求。

设置手机代理

你可以设置手机为PC端的代理,然后你就可以监控手机的通信过程了。使用手机连接PC机所在的路由器或者交换机(保持手机和PC在同一个网络),然后设置你的WIFI代理。 这里以我的小米手机作为demo测试:点开当前连接的WIFI,在代理选择 “手动”,如下图所示:

然后填写代理信息:

主机名:你的PC机的ip地址(如果不知道使用ifconfig 查询)

端口:前面你设置的代理端口,默认 8888

不使用网址:不使用代理的网址,这个根据自己情况设置,如果不设置就是所有对外请求全部使用代理。

贴上我的配置:

设置HTTPS代理

charles默认是无法代理https请求的,因为没有证书。所以要代理https请求必须先安装证书。

  1. 首先要安装PC端的证书,选择菜单 “Help” -> “SSL Proxy” ->”Install Charles Root Certificat” (注明:以下为mac截图,linux这个菜单没法截图)

这时会弹出如下导入证书的对话框(这里不同的系统有差异,mac电脑和windows系统也许不是这样,本教程以linux为例子)

点击 import,输入口令后按确定导入完成。

导入证书之后会弹出如下对话框,选择Allow即可。

  1. 导入手机端证书,选择菜单 “Help” -> “SSL Proxy” -> “Install Charles Root Certificate on a Mobile Device or Remote Browser”

这时会弹出如下对话框:

大致意思是要你在手机浏览器输入http://charlesproxy.com/getssl去安装证书。 你照做就好了,输入之后根据提示一步一步完成即可。

乱码问题

关于部分出现的中文乱码问题,我也碰到过,网上有各种答案,但是我在装完证书之后, 乱码问题也一起解决了。这个仅供参考。

参考资料

http://blog.devtang.com/2015/11/14/charles-introduction/

《完》