移动开发网络包分析之一 (抓包工具)

抓包工具 分析

移动端抓包工具有:

  1. Charles, Fidder 这两款软件都是在电脑上面允许,通过设置IP设置,网络包路由到电脑上抓取。
  2. Replica是移动端app ,可以直接在这款app中抓取手机其他App发送的http请求包。

1. IOS抓包工具 Repica app使用

1.1 安装Repica app

app store搜索 repica下载:
在这里插入图片描述

首次运行需添加VPN配置:

上传抓包示例:

1.打开Replica App,点击Start开始抓包(注意免费版只能记录20条)
在这里插入图片描述

2.返回Replica ,点击Stop停止抓包–>然后点击屏幕下方Analytics按钮

此时可以看到抓包信息,点击最上面的进入本次抓包:
在这里插入图片描述

2. IOS抓包工具 Charles mac抓包软件使用

2.1 charles 安装

在iOS开发过程中,抓包是常见的必备技能之一。官方dmg下载地址:点击此处下载Charles

安装完成后需要注意:

  1. 添加 SSL 配置
    Charles -> Proxy -> SSL Proxying Settings -> SSL Proxying
    添加对应的域名和端口,为了方便起见,可以直接添加, 通配符配置,端口号为。
  2. 配置手机代理
    手机和 Mac 连接到同一个 WIFI 网络。
    Android -> Settings -> Wi-Fi -> 长按当前 Wi-Fi -> Modify network
    Advanced options
    Proxy -> Manual
    Proxy hostname -> Mac 的 IP
    Proxy port -> 8888
    Save
  3. 安装 Charles 证书
    在手机浏览器地址栏输入:http://www.charlesproxy.com/getssl/,下载证书,点击安装。

2.2 charles 工具介绍

工具介绍:

Charles 是在 Mac 下常用的网络封包截取工具,在做
移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。

Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。

除了在做移动开发中调试端口外,Charles 也可以用于分析第三方应用的通讯协议。配合 Charles 的 SSL 功能,Charles 还可以分析 Https 协议。

Charles 是收费软件,可以免费试用 30 天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过 30 分钟,并且启动时将会有 10 秒种的延时。因此,该付费方案对广大用户还是相当友好的,即使你长期不付费,也能使用完整的软件功能。只是当你需要长时间进行封包调试时,会因为 Charles 强制关闭而遇到影响。

Charles 主要的功能包括:

截取 Http 和 Https 网络封包。
支持重发网络请求,方便后端调试。
支持修改网络请求参数。
支持网络请求的截获并动态修改。
支持模拟慢速网络。
Charles 4 新增的主要功能包括:

支持 Http 2。
支持 IPv6。

配置:
将 Charles 设置成系统代理
之前提到,Charles 是通过将自己设置成代理服务器来完成封包截取的,所以使用 Charles 的第一步是将其设置成系统的代理服务器。

启动 Charles 后,第一次 Charles 会请求你给它设置系统代理的权限。你可以输入登录密码授予 Charles 该权限。你也可以忽略该请求,然后在需要将 Charles 设置成系统代理时,选择菜单中的 “Proxy” -> “Mac OS X Proxy” 来将 Charles 设置成系统代理。如下所示:

在这里插入图片描述

之后,你就可以看到源源不断的网络请求出现在 Charles 的界面中。

需要注意的是,Chrome 和 Firefox 浏览器默认并不使用系统的代理服务器设置,而 Charles 是通过将自己设置成代理服务器来完成封包截取的,所以在默认情况下无法截取 Chrome 和 Firefox 浏览器的网络通讯内容。如果你需要截取的话,在 Chrome 中设置成使用系统的代理服务器设置即可,或者直接将代理服务器设置成 127.0.0.1:8888 也可达到相同效果。

Charles 主界面介绍:

在这里插入图片描述

Charles 主要提供两种查看封包的视图,分别名为 “Structure” 和 “Sequence”。

Structure 视图将网络请求按访问的域名分类。
Sequence 视图将网络请求按访问的时间排序。
大家可以根据具体的需要在这两种视图之前来回切换。请求多了有些时候会看不过来,Charles 提供了一个简单的 Filter 功能,可以输入关键字来快速筛选出 URL 中带指定关键字的网络请求。

对于某一个具体的网络请求,你可以查看其详细的请求内容和响应内容。如果请求内容是 POST 的表单,Charles 会自动帮你将表单进行分项显示。如果响应内容是 JSON 格式的,那么 Charles 可以自动帮你将 JSON 内容格式化,方便你查看。如果响应内容是图片,那么 Charles 可以显示出图片的预览。

过滤网络请求
通常情况下,我们需要对网络请求进行过滤,只监控向指定目录服务器上发送的请求。对于这种需求,以下几种办法:

方法一:在主界面的中部的 Filter 栏中填入需要过滤出来的关键字。例如我们的服务器的地址是:http://yuantiku.com , 那么只需要在 Filter 栏中填入 yuantiku 即可。

方法二:在 Charles 的菜单栏选择 “Proxy”->”Recording Settings”,然后选择 Include 栏,选择添加一个项目,然后填入需要监控的协议,主机地址,端口号。这样就可以只截取目标网站的封包了。如下图所示:

在这里插入图片描述

通常情况下,我们使用方法一做一些临时性的封包过滤,使用方法二做一些经常性的封包过滤。

方法三:在想过滤的网络请求上右击,选择 “Focus”,之后在 Filter 一栏勾选上 Focussed 一项,如下图所示:

在这里插入图片描述

这种方式可以临时性的,快速地过滤出一些没有通过关键字的一类网络请求。

截取 iPhone 上的网络封包
Charles 通常用来截取本地上的网络封包,但是当我们需要时,我们也可以用来截取其它设备上的网络请求。下面我就以 iPhone 为例,讲解如何进行相应操作。

Charles 上的设置

要截取 iPhone 上的网络请求,我们首先需要将 Charles 的代理功能打开。在 Charles 的菜单栏上选择 “Proxy”->”Proxy Settings”,填入代理端口 8888,并且勾上 “Enable transparent HTTP proxying” 就完成了在 Charles 上的设置。如下图所示:

在这里插入图片描述

Phone 上的设置

首先我们需要获取 Charles 运行所在电脑的 IP 地址,Charles 的顶部菜单的 “Help”->”Local IP Address”,即可在弹出的对话框中看到 IP 地址,如下图所示:

在 iPhone 的 “ 设置 “->” 无线局域网 “ 中,可以看到当前连接的 wifi 名,通过点击右边的详情键,可以看到当前连接上的 wifi 的详细信息,包括 IP 地址,子网掩码等信息。在其最底部有「HTTP 代理」一项,我们将其切换成手动,然后填上 Charles 运行所在的电脑的 IP,以及端口号 8888,如下图所示:

在这里插入图片描述

2.3 charles 工具使用

一、抓包
下面来看一下如何进行抓包

2.3.1 HTTP抓包

1、打开Charles程序
2、查看Mac电脑的IP地址,系统偏好设置->网络就可以查看到了,比如我的ip地址是:192.168.1.7
3、打开iOS设置,进入当前wifi连接(Mac在一个局域网内),设置HTTP代理Group,将服务器填为上一步中获得的IP,即192.168.1.7,端口填8888:抓包分析
4、iOS设备打开你要抓包的app进行网络操作
5、Charles弹出确认框,点击Allow按钮即可

2.3.2 HTTPS抓包

需要下载Charles证书点击这下载,解压后导入到iOS设备中
在这里插入图片描述点击安装在这里插入图片描述

点击安装,证书就安装成功了

然后在Charles的工具栏上点击Proxy按钮,选择Proxy Settings…
切换到SSL选项卡,选中Enable SSL Proxying,别急,选完先别关掉,还有下一步,需要在上一步的SSL选项卡的Locations表单填写要抓包的域名和端口,点击Add按钮,在弹出的表单中Host填写域名,比如填api.instagram.com,Port填443
ssl

2.3.3 常用设置
2.3.3.1 过滤请求
  1. Filter 栏–>过滤关键字
  2. 在 Charles 的菜单栏选择Proxy –> Recording Settings –>Include –> add( 依次填入协议+主机地址+端口号,实现只截取目标网站的封包 )

在这里插入图片描述

  1. 在想过滤的网络请求上右击,选择 “Focus”,在 Filter 栏勾选上 Focussed
    在这里插入图片描述
2.3.3.2 截取 iPhone 上的网络封包
  1. 先设置Charles : Charles 上的设置
    Proxy –> Proxy Settings –>端口填 8888 –>勾选 Enable transparent HTTP proxying .
    在这里插入图片描述
  2. 设置ios设备:
    首先,你的iphone链接的wifi要和电脑一样
    然后,选择你连接的WiFi,划到底部,配置代理,IP选择你电脑的IP,端口就是上面配置的8888
    比如:

在这里插入图片描述

  1. 电脑上打开Charles, iPhone 上的任意连网的程序,
    然后,Charles 就会弹出 iPhone 请求连接的确认菜单,点击 “Allow” 即可完成设置。
    在这里插入图片描述
2.3.3.3 模拟慢速网络
  1. 选择 Proxy –> Throttle Setting –>勾选上 Enable Throttling –> 选择Throttle Preset 类型
    在这里插入图片描述

  2. 若只想模拟指定网站的慢速网络,再勾选图中的 Only for selected hosts 项,然后在对话框的下半部分设置中add指定的 hosts 项。

3. Android 抓包工具使用 Fidder 使用

3.1 工具介绍

ios android app都可以通过Fidder抓包分析。

Fidder下载地址:点击这里下载Fidder

  1. 打开Fiddler, Tools-> Fiddler Options (配置完后记得要重启Fiddler)
    选中"Decrpt HTTPS traffic", Fiddler就可以截获HTTPS请求
    选中"Allow remote computers to connect". 是允许别的机器把HTTP/HTTPS请求发送到Fiddler上来
    在这里插入图片描述

在这里插入图片描述

记住这个端口号是:8888

  1. 设置手机
    首先获取PC的ip地址:命令行中输入:ipconfig,获取ip地址
    在这里插入图片描述
  2. 确定一下手机和PC是连接在同一个局域网中:进入手机的设置->点击进入WLAN设置->选择连接到的无线网,长按弹出选项框:如图所示:在这里插入图片描述
    选择修改网络配置:在这里插入图片描述

选择显示高级选项,将代理设置成手动,将上面获取到的ip地址和端口号填入,点击保存。这样就将我们的手机设置成功了

  1. 下载Fiddler的安全证书
    使用Android手机的浏览器打开:http://10.2.145.187:8888, 点"FiddlerRoot certificate" 然后安装证书,如图:在这里插入图片描述
  2. Fiddler抓包如下:在这里插入图片描述

ios 常见问题分析:

参考技术大牛:
牛人

  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Charles 是一款网络抓包工具,它可以让你查看应用程序和网站之间的通信数据,从而帮助你进行调试和分析。以下是使用 Charles 的详细步骤: 1. 下载并安装 Charles:在官方网站上下载 Charles 并按照提示进行安装。 2. 配置 Charles:打开 Charles,然后在菜单栏中选择“Proxy” -> “Proxy Settings”,在弹出的窗口中选择“HTTP”选项卡,将“Port”设置为 8888,并勾选“Enable transparent HTTP proxying”和“Enable macOS Proxy”。 3. 配置移动设备:如果你想抓取移动设备的数据,需要将移动设备的网络代理设置为 Charles 的 IP 地址和端口号(默认为 8888)。具体方法请查看 Charles 官方文档。 4. 开始抓包:在 Charles 中点击“Record”按钮,然后使用你的应用程序或浏览器访问网站,在 Charles 中就可以看到通信数据了。 5. 查看数据:在 Charles 中可以看到所有的请求和响应数据。你可以选择任何一个请求或响应来查看其详细信息,括请求头、响应头、请求体和响应体等。 6. 修改数据:如果你需要修改某个请求的数据,可以右键点击请求并选择“Edit”,然后进行修改即可。 7. 断点调试:如果你需要在某个请求或响应时暂停抓包以进行调试,可以在 Charles 中右键点击该请求或响应并选择“Breakpoints” -> “Add”,然后在弹出的窗口中勾选“Request”或“Response”,并设置相应的条件即可。 总之,Charles 是一款非常方便的网络抓包工具,可以帮助你快速定位和解决各种网络问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值