
通常对于已经装在苹果手机中的应用,想要验证一些bug或者作为上架前的完整性验证,需要抓取Http请求的参数和相应服务器响应。下面介绍下在macOS下对苹果手机的抓包操作
环境:
1.电脑macOS10.12
2.移动端iOS10
3.电脑端软件:Charles for mac(官网:https://www.charlesproxy.com/latest-release/download.do)
4.电脑和手机连接在同一wifi下(或者电脑有线,热点共享给移动端)
注:官网的下载可以试用30天,也可网上下载破解版的
一、Http请求的抓取
1.电脑和手机连接上wifi,电脑打开设置-网络-选中左边正连接的网络(我的是有线,就选择以太网了,一般选择wifi),记录下右边的IP地址,如图:

2.手机打开设置-无线局域网-选中当前连接的wifi-HTTP代理选中手动,服务器填写之前电脑端的ip,端口号填写默认的8888,点击左上角返回到上个界面

3.打开电脑端的charles,注意连接上代理的手机必须要打开charles才能使用正常的网络连接,有的时候发现手机网络连接不上需要关闭代理或者打开charles。这时候手机端的请求已经出现charles左边的列表中了,点击可以查看具体的请求。
二、Https请求的抓取
上面的方法只能抓取到Http请求,对于Https只能抓取到接口,但是不能看到具体的请求内容,请求的响应内容都是以乱码的形式显示。此时我们需要在电脑端和手机端都装上charles的证书,并且把需要抓包的请求域名放入到SSL代理的解析列表中
1.电脑端证书的安装
charles - Help - SSL Proxying - Install Charles Root Certificate

2.电脑端信任证书
钥匙串-双击charles证书-总是信任

3.移动端证书的安装
charles - Help - SSL Proxying - Install Charles Root Certificate...mobile Device or Remote Browser


连接代理的手机浏览器打开图中选中的地址,不同版本的charles地址有可能不一样。在弹出的界面中安装对应的描述文件。有的版本的charles可能需要重新进入手机端的配置-描述文件-charles的描述文件中去信任一下,我这边4.2版本charles iOS10已经不需要这步操作了。
4.把需要解析的地址加入到列表中
charles - Proxy -SSL Proxying Setting - 列表中需要添加解析的域名(不需要加后面的请求路径以及前面的请求协议)


到这里,https的请求参数以及响应内容已经能顺利地抓到了

网友评论