app抓包之Charles安装

Charles是一个网络抓包工具,相比Fiddler,其功能更为强大,而且跨平台支持得更好,所以这里选用它来作为主要的移动端抓包工具。

一、下载Charles

我们可以在官网下载最新的稳定版本,如图所示。可以发现,它支持Windows、Linux和Mac三大平台。

直接点击对应的安装包下载即可,具体的安装过程这里不再赘述。

Charles是收费软件,不过可以免费试用30天。如果试用期过了,其实还可以试用,不过每次试用不能超过30分钟,启动有10秒的延时,但是完整的软件功能还是可以使用的,所以还算比较友好。

二、安装

1. 选择next

2. 勾选同意协议

3. 更改安装路径

4. 开始安装

5. 完成安装

三、pc证书配置(重要)

现在很多页面都在向HTTPS方向发展,HTTPS通信协议应用得越来越广泛。如果一个App通信应用了HTTPS协议,那么它通信的数据都会是被加密的,常规的截包方法是无法识别请求内部的数据的。

安装完成后,如果我们想要做HTTPS抓包的话,那么还需要配置一下相关SSL证书。接下来,我们再看看各个平台下的证书配置过程。

Charles是运行在PC端的,我们要抓取的是App端的数据,所以要在PC和手机端都安装证书。

1.Windows

如果你的PC是Windows系统,可以按照下面的操作进行证书配置。

首先打开Charles,点击Help→SSL Proxying→Install Charles Root Certificate,即可进入证书的安装页面,如图所示。

弹出证书管理界面

点击安装证书,选择存储位置(默认即可)

选择证书存储路径,一般建议指定一个统一的目录

完成设置

弹窗,点击“是”

导入成功

2. Mac用户

移动至[601]app抓包Charles安装之爬取微信小程序-腾讯云开发者社区-腾讯云

四、移动端安装证书(重要)

移动端同样也需要安装Charles证书,具体操作如下:

弹出提示

提示需要设置手机http代理为电脑ip,端口为8888,然后在手机浏览器上访问 chls.pro/ssl 下载安装证书。如果IOS 版本在10以上,必须在设置->通用->关于本机->证书信任设置中打开对根证书启用完全信任。

1. Android

如果你的手机是Android系统,可以按照下面的操作进行证书配置。

在Android系统中,同样需要设置代理为Charles的代理

设置步骤为:

点击手机连接的WiFi,进入设置界面

选择“手动”代理

输入提示中的主机名(IP)以及端口号(冒号后面的四位数字)

点击确认后,电脑端会弹出提示,显示手机已连接

打开Charles,允许手机连接

2. iOS

移步:[601]app抓包Charles安装之爬取微信小程序-腾讯云开发者社区-腾讯云

此时点击Allow按钮即可。这样手机就和PC连在同一个局域网内了,而且设置了Charles的代理,即Charles可以抓取到流经App的数据包了。

五、安装Charles的HTTPS证书

在电脑上打开Help→SSL Proxying→Install Charles Root Certificate on a Mobile Device or Remote Browser。

 

会出现如下提示

它提示我们在手机上设置好Charles的代理(刚才已经设置好了),然后在手机浏览器中打开chls.pro/ssl下载证书。

在手机上打开chls.pro/ssl后,便会弹出证书的安装页面:

等待一会,会提示下载证书Charles-proxy-ssl-proxying-certificate.pem

下载完成后,点击证书进行安装

由于浏览器或手机行不同,可能会出现不同的提示,或直接进入安装界面,安装成功即可

根据提示,进入设置,搜索“证书”

点击“CA证书”,选择证书位置,点击证书,出现“已安装CA证书”的提示,即代表证书已经安装完成

六、实践--抓取移动端小程序链接

1. 取消Windows代理

由于此次目标是抓取移动端微信小程序中的数据,取消此选项是尽量减少无关的数据量。

2. 查看本机IP地址与配置相关端口号

默认端口号是8888,可以修改。 Help -> Local ip Address :

Proxy -> Proxy Settings :

3. ssl代理设置

安装完成ssl证书后,需要在Charles中开启ssl代理设置,在Proxy->SSL Proxying Settings中,勾选Enable SSL Proxying,

点击add,新增访问的目标地址,根据提示,空的host与port匹配所有的值,可以使用*与\?进行匹配,此处host与port均填写*。

至此,Charles相关的配置完毕。

4. Charles抓取小程序数据

手机与Charles均配置成功后,打开微信小程序,此时Charles会自动获取http与https访问,如下:

点击左边解析的链接,选择Contents,JSON Text,可以看到解析出来的微信小程序数据内容。

找到对应的api之后,程序请求api,需要带上安卓对应请求头信息。

问题集锦
网络问题:

网传手机与电脑链接的网段必须相同,但是也有不一致的说法

手机或电脑无法联网:

证书问题:证书未能正确安装,查看手机上是否始终信任证书!(多数情况下如此);电脑上查看证书是否安装在受信任的位置,浏览器中的证书是否正确添加。

防火墙问题:关闭Windows10的防火墙,取消阻止传入连接。

https加密的链接显示unknow

此问题遇到的可能性最大,导致的原因很多,

最有可能的原因在于证书的问题,证书未能正确安装,查看手机上是否始终信任证书!!(多数情况下如此,注意iOS版本问题,过高需要始终信任此证书);电脑上查看证书是否安装在受信任的位置。

当你发现这个问题的时候,就不要再费力去设置charles以及换各种姿势去装证书了,这些都是徒劳的,因为从Android 7.0开始系统默认不信任用户证书,因此即时你安装成功,证书对APP来说也是无效的。

目前腾讯对微信的权限管的很严,小程序在模拟器上无法使用是普遍现象

参考文章:

[601]app抓包Charles安装之爬取微信小程序-腾讯云开发者社区-腾讯云

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山楂橙子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值