0%

Charles安装与使用

Charles是常用的抓包工具,仿写app获取网络数据最有效的途径。

img

Charles是付费软件,免费使用30天。超过30天还可以使用,只是每次启动会有10s的延迟,4.0.1版本每隔一段时间会弹出Charles介绍页5s,消失后可继续使用,超过30分钟会弹出警告闪退,重启后即可使用。还是给不付费用户留了条坎坷的活路。

img

安装

本文使用的是4.0.1版本,Charles官网下载地址,Charles支持Windows、Mac、Linux,找到对应系统下载安装即可。

设置系统代理

将Charles设置为系统代理服务器后才能完成抓包操作。安装完成后第一次启动,Charles会请求设置系统代理权限,输入系统登录密码授权。也可以勾选菜单 -> Proxy -> macOS Proxy设置为系统代理。

img

设置完成之后,点击网页,会有网络请求出现在Charles界面。这就是截取本地的网络访问,也可以截取其他设备上的网络访问,比如iPhone上的app数据抓包,需要进行下面的设置。

钥匙串里信任根证书

点击菜单 -> Help -> SSL Proxying -> Install Charles Root Certificate,弹出钥匙串,也可以直接手动找到钥匙串打开。

img

发现钥匙串里Charles证书是不受信任的,选中证书,右键 -> “显示简介”,点信任前的三角号,展开信任(默认收起来的),选择始终信任

img

设置完成之后,Charles根证书成为受此账户信任。

img

设置Charles配置

需要打开Charles的代理功能,点击菜单 -> Proxy -> Proxy Settings,写入代理端口8888,勾选Enable transparent HTTP proxying,点击OK,如下图所示。

img

查看电脑ip,并在iPhone上设置http代理

点击菜单 -> Help -> Local IP Address,可以显示当前电脑运行的ip地址。

img

在iPhone中设置 -> 无线局域网 -> 连接无线网的详情键(ⓘ),将HTTP代理选择为手动,服务器输入刚才查看的电脑ip,端口输入刚才设置的8888

img

打开iPhone上的app,Charles会出现连接请求,点击Allow完成连接即可。

img

这时浏览app便能截取app内http请求的数据,下图是访问猫眼app截取到的首页数据。

img

要截取手机上的https请求的数据,还需要在手机上安装证书。

iPhone上安装证书,截取https数据

完成上文设置,iPhone中用Safari访问http://charlesproxy.com/getssl,会自动跳转到证书安装页,点击右上角安装 -> 输入手机密码 -> 点击右上角安装,即可安装完成。

| img| img|

如果弹不出证书安装界面,可以Safari访问https://www.charlesproxy.com/documentation/additional/legacy-ssl-proxying/,点击()前面的here即可。

img

安装完成之后即可对https请求做数据抓包。

查看接口地址以及提交的参数

点击Charles工具栏上的按钮,会出现该条数据的接口地址和请求参数,下图是访问猫眼app的首页数据提交的接口地址和请求参数。

img

tips

用Charles抓包app数据完毕,关闭Charles后,记得将手机的无线局域网上的http代理关闭,不然手机就连不上网了。

打赏作者一杯咖啡