charles如何抓取手机的数据

原创 2018年04月15日 03:05:01

        在app开发中,如果我们要对用实体的手机进行测试是一件非常麻烦的事情,因为我们无法像在电脑上一样查看前后端的交互过程,从而判断出问题的根源。那有没有方法让我们可以捕获通过手机网卡的数据包呢,办法当然有,我们介绍一种通过代理服务器加抓包软件的方式来实现。
需要准备:电脑一台 手机一部 局域网 代理服务器 抓包软件

注:采用Charles可以在实现抓包功能的同时还可以作为代理服务器,所以就是用使用Charles

实现原理:

        在一个局域网中,正常的上网流程是这样的,在手机上访问网络的数据会发送到局域网网关,然后通过网关发送到互联网;互联网的返回数据会原路返回,发送到手机上。这样的弊端是,我们无法获取数据网卡的交互数据。代理方式会改变手机数据的传送方式,手机产生的数据会发送到代理服务器(电脑),然后电脑会将数据转发出去,返回来的数据会重新发送给手机。通过这一层代理,手机产生的手机就会通过电脑的网口,在电脑上安装的抓包软件就可以获取到数据包中的内容了。


怎么实现

1.安装Charles

        可以直接在网络上搜索绿色版的Charles安装,不用激活,直接使用。这里采用mac安装进行后续说明。安装好以后可能会无法打开,需要在安全与隐私里面点击一下仍要打开,然后就没有问题了。


2.电脑设置为代理服务器

        打开Charles,进入proxysettings,打开代理服务器,设置好端口号,开启HTTP透传代理。代理服务器就设置完成了。

        


3.手机设置电脑为代理

        查看电脑IP地址并记录下来,然后进手机设置网络的代理服务,打开手机,进入 设置 >wlan >当前连接的网络>高级>代理设置;将代理设置为手动,主机名是电脑的IP,端口号是Charles设置的端口号。保存设置后电脑的Charles后檀树一个提示框,点击allow就可以了。

注:电脑与手机的网络需要在一个局域网里面。




4.打开抓包功能开始抓包

        开启网络抓包后,用手机上网,就会看到出现了好多抓包记录,如果很难区分哪些是手机的,哪些是pc的,可以在proxy里取消macOSproxy。然后抓到的数据就全部是手机产生的数据包了。



HTTPS问题

        https是经过加密传输的,所以当手机的https数据包代理到电脑时电脑可以捕获到数据但是无法解析,能看到的只是请求地址,以及一些unknown的请求内容。我们想要看到的是第二张图中的有内容的请求,这就需要安装证书和设置ssl代理了。


1.设置ssl代理

Charles进入SSL proxy settings,将需要查看协议具体内容的网址添加进去,如果觉得麻烦的话,可以添加一个*将所有的网址都添加进去。然后去浏览HTTPS的请求手机就会提示证书有问题,如果不觉得麻烦的话,可以一直点击继续,否则的话就需要安装证书了。



2.安装证书

证书需要在电脑和手机端同时安装,电脑端的安装如下:

        进入Charles点击help>SSL proxying,选择install Charles root certificate,在弹出框中选择添加,证书就会被添加到电脑中,还需要进行证书的信任才能完成证书的安装。



        进入钥匙串访问,打开证书,找到安装好的Charles证书;发现目前证书不可用。双击证书,在信任的下拉菜单中将使用系统默认改为始终信任,保存退出。证书就变为可用状态了



证书手机端的安装与设备有很大的差异,这里选择小米手机作为示范。

进入Charleshelp>SSL proxying,选择export Charles root certificate and…,弹出的对话框中输入密码。然后通过任意方式将证书发送到手机。在手机的设置>WLAN>高级设置>安装证书>找到证书>安装>输入提取密码>完成。







GIS数据的坐标系

-
  • 1970年01月01日 08:00

使用 Charles 抓取 app 数据包

作者:xiaoyanger链接:https://www.jianshu.com/p/56f98a4b1fc9本文是 xiaoyanger 原创。转载请联系作者获得授权。前言Charles 是一款非常实...
  • H176Nhx7
  • H176Nhx7
  • 2018-02-02 00:00:00
  • 715

使用Charles 4.1.1 抓取iPhone上的数据接口

说明: 1. 本人电脑是黑苹果,系统是OS X EI Capitan,版本10.11.5 2. Charles版本是4.1.1 一. 实现步骤 下载和安装Charles 下载和安装电脑的C...
  • SSIrreplaceable
  • SSIrreplaceable
  • 2017-05-28 05:14:19
  • 2464

使用charles来抓取手机App的网络包

适用范围:wifi 移动网络等网络没找到抓包设置。 机器:Mac 手机wifi设置http代理 charles抓包网关设置 记录的网页域名设置 抓到http请求的响应结果,收到...
  • jia12216
  • jia12216
  • 2015-07-17 18:09:32
  • 2529

Charles抓取http接口数据

Charles抓取http接口数据1.Charles抓取http接口数据这个资料网上一大堆,此处不再赘述。本着认真负责的态度我还是到网上找了一篇图文并茂的文章供大家参考 iOS使用Charles(青花...
  • hailang47923
  • hailang47923
  • 2017-06-16 21:57:37
  • 291

Charles抓取HTTP、HTTPS的数据包

抓包分析数据在移动开发中十分重要,可以帮助我们更快的了解数据构成,提高开发效率。但是在苹果要求上线的App必须使用HTTS之后,HTTPS数据包的抓取分析较为麻烦,在此总结了在mac上使用Charle...
  • DreamcoffeeZS
  • DreamcoffeeZS
  • 2017-01-04 14:46:44
  • 7471

为什么用charles抓取手机APP,配置正确,但是却抓不到数据

1. 确保电脑的防火墙是关闭状态 2. 如果,防火墙关了还是不行,那么请把手机wifi断掉后重新连接,这样一般就可以解决问题了。 如果以上方法还是不行的话,那么请将手机w...
  • u012532033
  • u012532033
  • 2017-07-21 17:24:54
  • 657

使用mac端Charles4.0 抓取App接口(配置篇)

Charles4.0下载地址,点这里史蒂芬周的博客 具体的安装和破解方法都在博客里有写到,本篇博客基于你已经完成安装了Charles。 首先打开Charles,先进行一些简单的设置...
  • J1angLei
  • J1angLei
  • 2018-01-22 15:36:30
  • 143

使用Charles进行移动APP抓包分析

一、简介Charles是目前最强大最流行的http抓包调试工具,Mac、Unix、Windows各个平台都支持。特别是做APP开发,调试与服务端的通信,Charles是必备工具。目前Charles是收...
  • suifeng3051
  • suifeng3051
  • 2016-08-01 17:19:33
  • 24963

Charles抓包工具使用以及抓取API接口

抓包(Packet Capture),实际上就是对网络请求(包括发送与接收)的数据包进行截获、重发、编辑、转存等操作,在Android下,也经常被用来进行数据截取等。学会抓包之后,获取某个App的AP...
  • lhk147852369
  • lhk147852369
  • 2017-09-18 15:48:32
  • 976
收藏助手
不良信息举报
您举报文章:charles如何抓取手机的数据
举报原因:
原因补充:

(最多只允许输入30个字)