专栏名称: xiangzhihong
前端跨平台工程师、客户端工程师
目录
相关文章推荐
上下五千年故事  ·  孙思邈有个千古名方,专清体内各种的湿气、痰浊 ... ·  3 天前  
天都新闻  ·  国乒公布澳门世界杯参赛名单 ·  2 天前  
天都新闻  ·  国乒公布澳门世界杯参赛名单 ·  2 天前  
51好读  ›  专栏  ›  xiangzhihong

iOS Charles 抓包 https 实战并篡改返回数据

xiangzhihong  · 掘金  ·  · 2019-01-21 00:16

正文

Linux编程
点击右侧关注,免费入门到精通!

作者丨Maxdon

https://www.jianshu.com/p/e26151084add

没需求?No!不想拦截某个软件的接口数据瞧瞧到底干了啥?是否遇到想把返回数据更改下,来测试临界值情况,得找个后端来一起调试下?发个 Post 请求调试只能一步步来码?这些何曾不是 iOS 开发中面临的!只需要拥有它 Charles 抓包,一切都帮你搞定。

那么iOS 开发如何抓包呢,原理其实说起来也很简单,就是在客户端给服务器端发消息的时候,中间人(Charles 抓包)截取客户端发送给服务器的请求,然后伪装成客户端与服务器进行通信;将服务器返回给客户端的内容发送给客户端,伪装成服务器与客户端进行通信。先看看下面的图,简单了解下中间人抓包过程:

下载安装 Charles 抓包软件。破解版下载:http://www.sdifen.com/

本文主要讨论两点:iOS开发中利用 Charles 抓包 https 请求和利用 Charles 篡改返回数据。

1、安装 Charles 证书到电脑。

2、Charles 证书的信任。先打开钥匙串,看看是否安装成功了没。成功了,双击该证书,点击 "信任",展开后出现如下,选择:始终信任。

信任成功后,可以抓取到网页的 https 数据啦。但是要抓取手机设备上的 https 数据,还需要进行下面的代理等操作。

iPhone 上安装证书并设置网络代理

1、先在 Mac 设备的 Charles 进行如下操作。

出现如下提示。这里是告诉我们在设备上进行如下两步操作。

2、两步操作具体流程。

2.1、手动设置网络代理。iPhone Wi-Fi 连接到 Mac 共享的热点上,然后点击连上的共享 Wi-Fi 手动设置代理。输入如上图 "两步操作" 的第 1 步地址。

2.2、安装 Charles 证书。打开 Safari 浏览器,输入如上图 "两步操作" 的第 2 步地址。按提示安装 Charles 证书。

2.3、证书信任设置。还有这一步主要是在 iOS10.3 或之后的系统,需要手动信任已下载的证书。(设置 - 通用 - 关于本机 - 证书信任设置)

完成上面操作,最后再设置下SSL Proxying ,就可以利用 Charles 抓包 https 请求了。

选择 Charles 菜单中:Proxy -> SSL Proxying Settings...

回归到本文需求第一点,对  https 的请求进行抓包!最近负责物流模块的优化任务,先去瞧瞧同类的 "58速运" 是网络层到底发生了些什么。

可以看到它返回的是一个 HTML,可以知道这个界面中 "58速运" 采用了网页展示和进行一些交互的操作完成该功能。而我们 app 中使用了原生的开发。

回到本文需求第二点,更改返回数据来测试临界情况!







请到「今天看啥」查看全文