移动抓包基础篇

前言

在移动开发、测试时,抓包可以有效的发现、解决问题。

目前抓包还能解析大部分POST、GET请求,并且绝大多数的https并没有严格校验证书,所以也能从数据包中看到所以然。

在使用初期,大家会遇到各种配置问题。今天亲自走一边,记录下来,希望帮助那些有需要的同学。

一、准备

  • 手机:android或iOS。文中以iOS为例。

  • 电脑:mac或windows。文件以mac为例。

  • 预装软件:Charles,各平台都有。

二、设置

1. 电脑设置

1.1 开启Chalres,可能会出现各种提示框,该授权的授权,该同意的同意。为了抓包清晰,我们取消捕获本地请求,Proxy => macOS Proxy

1.2 为了支持https抓包,安装电脑ssl证书。Help => SSL Proxying => Install Charles Root Certificate

1.3 打开钥匙串访问,找到Charles字样证书双击打开。

1.4 选择始终信任

1.5 回到Charles,我们设置需要抓取的https。Proxy => SSL Proxy Setting

1.6 不建议直接抓取*:433,这种情况下,会影响到系统的一些请求。

至此,电脑端设置结束


2. 手机设置

2.1 进入网络详细设置

2.2 找到http代理(不同的iOS位置不一样)

2.3 设置代理IP,此处指的是装有Charles的电脑。默认的代理端口是8888

2.4 为了支持https,需要安装证书。用safari打开http://chrls.pro/ssl,设置代理后有效。

2.5 一路该确认确认,该同意同意。好重点来,有个额外的地方需要同意。打开手机的设置 => 通用 => 关于。找到证书信任设置,大概是这样翻译的。

2.6 找到刚才安装的证书,打开信任。

至此,手机端设置结束。


三、抓包

1. 普通请求

1.1 手机正常打开钥匙APP,请求已经远远不断的出现。推荐大家使用Sequence模式和filter过滤。

1.2 选择一条数据,可以详细的看到来往消息。在Overview中我们能看到很多有用的信息

2. PB请求

2.1 普通的请求通过抓包已经可以看到所以然了。但是PB请求看上去就是一篇乱码。Charles本身有解析PB的方法,不过效果不理想。目前有替代方案,篇幅原因就不在这里阐述。


结束语

虽然文字啰嗦,图片也多。但是这里提及的都还是基础。在实际使用过程中,抓包可以帮助我们解决很多问题。希望本文对你有些些帮助。

对于PB包的查看,如有需要可线下沟通。也欢迎大家一起讨论。