一、简介
Charles(http://www.charlesproxy.com/)是在Mac 下常用的截取网络封包的工具。Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。
Charles 是收费软件,可以免费试用30 天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过30 分钟,并且启动时将会有10 秒钟的延时。
Charles软件和破解包下载地址:http://pan.baidu.com/s/1qYlEDE
(希望大家下载正式版的,哈哈哈哈哈哈哈)
二、安装
下载最新的Charles,官网http://www.charlesproxy.com/,将软件包拖入应用程序文件夹中。
显示包内容:
这里写图片描述
将Contents->Resources->Java中charles.jar的包替换为我们破解文件夹中的jar包:
这里写图片描述
三、使用Charles在mac上进行抓包分析
在软件安装完成后,我们已经可以在mac上截取一般的网络请求了,打开软件,将Proxy设置中的Mac OS X Proxy勾选,设置为网络代理,这时候如果发生网络请求,就可以被Charles截获到
这里写图片描述
这里写图片描述
选择Grant Privileges,然后输入电脑权限密码,即可获取网络请求了。
这里写图片描述
四、在移动设备上进行抓包
1、HTTP抓包
(1)、打开Charles程序;
(2)、查看Mac电脑的IP地址,系统偏好设置->网络就可以查看到了,比如我的ip地址是:192.168.51.30;
(3)、打开iOS设置,进入当前wifi连接(Mac在一个局域网内),设置HTTP代理Group,将服务器填为上一步中获得的IP,即192.168.1.7,端口填8888:
这里写图片描述
(4)、iOS设备打开你要抓包的app进行网络操作;
(5)、Charles弹出确认框,点击Allow按钮即可;
这里写图片描述
2、HTTPS抓包
(1)下载证书
需要下载Charles证书http://www.charlesproxy.com/ssl.zip,解压后导入到iOS设备中,这里我也是下载好了:
http://pan.baidu.com/s/1eSLQQoq,我们在ios设备中使用safari打开这个链接:
这里写图片描述
点击打开
这里写图片描述
点击安装
这里写图片描述
再点击安装,成功。
(2)、设置Proxy
在Charles的工具栏上点击Proxy按钮,选择Proxy Settings…
切换到SSL选项卡,选中Enable SSL Proxying;
在SSL选项卡的Locations表单填写要抓包的域名和端口,点击Add按钮,在弹出的表单中Host填写域名,比如填api.instagram.com,Port填443;
这里写图片描述
这时候我们打开网易app:
这里写图片描述
五、Charles的更多应用
1、过滤网络请求
有时候我们只想抓取某个主机的网络请求,我们可以设置过滤网络,在Proxy菜单中的Recording Setting中,我们选择include标签,可以在里面添加一个白名单,这样Charles就只截取在这个主机下的请求:
这里写图片描述
这里写图片描述
2、模拟限速网络
很多时候,我们需要测试在网络不佳时应用请求的相关数据,我们可以模拟设置限速网络,在Proxy菜单中的Throttle Settings中将,Enable Throttling勾选,并可以在下面进行网路设置,only for selected host可以设置一个指定的主机访问进行限制网络。
这里写图片描述
这里写图片描述
3、修改网络信息,多次请求
在测试接口时,有时候我们需要反复进行不同参数的接口请求,Charles也支持我们进行请求参数的修改和多次请求,在请求上点击右键,现则edit:
这里写图片描述
其中的参数,请求类型等我们都可以修改,之后点击execute进行重新请求
这里写图片描述