charles 抓包工具安装与使用
charles 是一个功能强大的跨平台抓包工具,有window, linux, mac版本。操作简单,界面美观,性能可靠。尤其是用来作为手机代理,可以很方便的破解手机app的通讯过程。
下面就简单介绍一下如何安装和使用。由于我使用的linux系统,所以是以linux版本为例,其他系统的请参考调试。
# 关于正版
Charles 是收费软件,可以免费试用 30 天。试用期过后,未付费的用户仍然可以继续使用, 但是每次使用时间不能超过 30 分钟,使用过程中不定时会中断 5 秒钟,并且启动时将会有 10 秒种的延时。 因此,该付费方案对广大用户还是相当友好的,即使你长期不付费,也能使用完整的软件功能。 只是当你需要长时间进行封包调试时,会因为 Charles 强制关闭而遇到影响。当然,没有什么是天朝的网民无法破解的, 我使用的也是破解版,(下面会提供下载地址)。
# 安装
如果想要正版的就去官网下载 https://www.charlesproxy.com/download/latest-release (opens new window)
这里提供一个linux的破解版下载 百度网盘 (opens new window)
安装很简单,先解压,然后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请求必须先安装证书。
- 首先要安装PC端的证书,选择菜单 "Help" -> "SSL Proxy" ->"Install Charles Root Certificat" (注明:以下为mac截图,linux这个菜单没法截图)
这时会弹出如下导入证书的对话框(这里不同的系统有差异,mac电脑和windows系统也许不是这样,本教程以linux为例子)
点击 import
,输入口令后按确定导入完成。
导入证书之后会弹出如下对话框,选择Allow
即可。
- 导入手机端证书,选择菜单 "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
本站博文如非注明转载则均属作者原创文章,引用或转载无需申请版权或者注明出处,如需联系作者请加微信: geekmaster01