Charles简介
Charles 是在 Mac 下常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。
Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。
除了在做移动开发中调试端口外,Charles 也可以用于分析第三方应用的通讯协议。配合 Charles 的 SSL 功能,Charles 还可以分析 Https 协议。
Charles 是收费软件,可以免费试用 30 天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过 30 分钟,并且启动时将会有 10 秒种的延时。因此,该付费方案对广大用户还是相当友好的,即使你长期不付费,也能使用完整的软件功能。只是当你需要长时间进行封包调试时,会因为 Charles 强制关闭而遇到影响。
Charles 主要功能
- 截取 Http 和 Https 网络封包。
- 支持重发网络请求,方便后端调试。
- 支持修改网络请求参数。
- 支持网络请求的截获并动态修改。
- 支持模拟慢速网络。
Charles 3.11.5 Mac 破解
http://pan.baidu.com/s/1dFFiuhr
提取密码:4a4b,解压密码:xclient.info本Charles 3.11.5 Mac 破解由群友行走的浮生提供,xclient整理
激活方法
复制 charles.jar 至 /Applications/Charles.app/Contents/Java/,覆盖。
Charles使用
按照上面步骤 Charles破解完后,第一次启动 Charles 会请求你给它设置系统代理的权限。你可以输入登录密码授予 Charles 该权限。你也可以忽略该请求,然后在需要将 Charles 设置成系统代理时,选择菜单中的 “Proxy” -> “Mac OS X Proxy” 来将 Charles 设置成系统代理。如下所示:
打开Charles->Proxy->Proxy Setting,设置代理端口为8888,并勾选Enable transparent HTTP proxying。
移动端设置
获取Mac上的IP
打开终端,输入命令:ifconfig en0 找到里面的IP地址:
设置iPhone HTTP代理
打开iPhone->设置->无线局域网->当前连接的网络->手动,将上一步获得的服务器地址填入对应输入框,端口号填写8888即可。
charles使用问题汇总
Charles是一款很好用的抓包修改工具,但是使用的时候肯定会遇到各种感觉很莫名其妙的问题,下面列出一些常见问题:
为什么下载后打不开?
因为charles是需要java环境才能运行的,需要先安装java环境才可以。
Java: http://www.java.com/zh_CN/
为什么用着用着就自动关闭了?大概30分钟就会关闭一次?
因为charles如果没有注册,每打次只能打开30分钟,然后自动关闭。
所以最好在使用前先按照说明去进行工具的注册操作。
为什么在操作的时候工具界面卡死,关不掉,只能用任务管理器才可以关掉?
这个是charles这个工具的一个bug,按照下面那样操作就可以解决:
首先随便抓些包,要求有图片的请求。
然后选中一个图片的请求,分别点击 Response - Raw ,那里会加载其中的内容,加载完毕后做任何操作就不会有问题了。
为什么用了charles后,我就上不了网页了,但是qq可以。
因为如果charles是非正常状态下关闭的话,那么IE的代理就不会被自动取消,所以会导致这种情况。
解决办法:
第一种:直接打开charles,然后再正常关闭即可。
第二种:去将IE浏览器代理位置的勾选去掉。
为什么我用charles不能抓到socket和https的数据呢?
首先,charles是不支持抓去socket数据的。
其次,如果抓不到https的数据的话,请查看你是不是没有勾选ssl功能。
最后,看下代理设置:Proxy - Proxy Settings - SSL 设置
为什么我用charles抓取手机APP,什么都是配置正确的,但是却抓不到数据。
首先,请确保电脑的防火墙是关闭状态,这个很重要。
如果,防火墙关了还是不行,那么请把手机wifi断掉后重新连接,这样一般就可以解决问题了。
如果以上方法还是不行的话,请检查手机wifi中Http Proxy:server是否为电脑ip, port 是否8888。
抓包后发现form中有些数据显示是乱码怎么办?
请在Raw模式下查看,Raw模式显示的是原始数据包,一般不会因为编码问题导致显示为乱码。
我用charles抓手机app的数据,但是同时也会抓去到电脑端的数据,可以设置吗?
点击状态栏 Proxy -> Mac OS X Proxy 、Mozilla Firefox Proxy 这两个勾选去掉,勾选表示接收电脑的数据抓包.
如果只想抓去APP的数据请求,可以不勾选此功能,减少其他信息干扰。
为什么我用IE可以抓到数据,但是用360或者谷歌浏览器就不行?
请确保360或者谷歌的代码设置中是不是勾选设置的是 使用IE代理。
想要复制粘贴某些数据的话,怎么办,右键没有相应功能啊?
请直接使用Ctrl +C 和 Ctrl+V 即可。
原文连接
的情况下转载,若非则不得使用我方内容。