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

文章目录

  • 抓包工具 分析
    • 1. IOS抓包工具 Repica app使用
      • 1.1 安装Repica app
    • 2. IOS抓包工具 Charles mac抓包软件使用
      • 2.1 charles 安装
      • 2.2 charles 工具介绍
      • 2.3 charles 工具使用
        • 2.3.1 HTTP抓包
        • 2.3.2 HTTPS抓包
        • 2.3.3 常用设置
          • 2.3.3.1 过滤请求
          • 2.3.3.2 截取 iPhone 上的网络封包
          • 2.3.3.3 模拟慢速网络
    • 3. Android 抓包工具使用 Fidder 使用
      • 3.1 工具介绍

抓包工具 分析

移动端抓包工具有:

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

1. IOS抓包工具 Repica app使用

1.1 安装Repica app

app store搜索 repica下载:
移动开发网络包分析之一 (抓包工具)_第1张图片

首次运行需添加VPN配置:

上传抓包示例:

1.打开Replica App,点击Start开始抓包(注意免费版只能记录20条)
移动开发网络包分析之一 (抓包工具)_第2张图片

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

此时可以看到抓包信息,点击最上面的进入本次抓包:
移动开发网络包分析之一 (抓包工具)_第3张图片

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 设置成系统代理。如下所示:

移动开发网络包分析之一 (抓包工具)_第4张图片

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

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

Charles 主界面介绍:

移动开发网络包分析之一 (抓包工具)_第5张图片

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 栏,选择添加一个项目,然后填入需要监控的协议,主机地址,端口号。这样就可以只截取目标网站的封包了。如下图所示:

移动开发网络包分析之一 (抓包工具)_第6张图片

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

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

移动开发网络包分析之一 (抓包工具)_第7张图片

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

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

Charles 上的设置

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

移动开发网络包分析之一 (抓包工具)_第8张图片

Phone 上的设置

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

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

移动开发网络包分析之一 (抓包工具)_第9张图片

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:移动开发网络包分析之一 (抓包工具)_第10张图片
4、iOS设备打开你要抓包的app进行网络操作
5、Charles弹出确认框,点击Allow按钮即可

2.3.2 HTTPS抓包

需要下载Charles证书点击这下载,解压后导入到iOS设备中
移动开发网络包分析之一 (抓包工具)_第11张图片点击安装移动开发网络包分析之一 (抓包工具)_第12张图片

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

然后在Charles的工具栏上点击Proxy按钮,选择Proxy Settings…
切换到SSL选项卡,选中Enable SSL Proxying,别急,选完先别关掉,还有下一步,需要在上一步的SSL选项卡的Locations表单填写要抓包的域名和端口,点击Add按钮,在弹出的表单中Host填写域名,比如填api.instagram.com,Port填443
移动开发网络包分析之一 (抓包工具)_第13张图片

2.3.3 常用设置

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

移动开发网络包分析之一 (抓包工具)_第14张图片

  1. 在想过滤的网络请求上右击,选择 “Focus”,在 Filter 栏勾选上 Focussed
    移动开发网络包分析之一 (抓包工具)_第15张图片
2.3.3.2 截取 iPhone 上的网络封包
  1. 先设置Charles : Charles 上的设置
    Proxy –> Proxy Settings –>端口填 8888 –>勾选 Enable transparent HTTP proxying .
    移动开发网络包分析之一 (抓包工具)_第16张图片
  2. 设置ios设备:
    首先,你的iphone链接的wifi要和电脑一样
    然后,选择你连接的WiFi,划到底部,配置代理,IP选择你电脑的IP,端口就是上面配置的8888
    比如:

移动开发网络包分析之一 (抓包工具)_第17张图片

  1. 电脑上打开Charles, iPhone 上的任意连网的程序,
    然后,Charles 就会弹出 iPhone 请求连接的确认菜单,点击 “Allow” 即可完成设置。
    移动开发网络包分析之一 (抓包工具)_第18张图片
2.3.3.3 模拟慢速网络
  1. 选择 Proxy –> Throttle Setting –>勾选上 Enable Throttling –> 选择Throttle Preset 类型
    移动开发网络包分析之一 (抓包工具)_第19张图片

  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上来
    移动开发网络包分析之一 (抓包工具)_第20张图片

移动开发网络包分析之一 (抓包工具)_第21张图片

记住这个端口号是:8888

  1. 设置手机
    首先获取PC的ip地址:命令行中输入:ipconfig,获取ip地址
    移动开发网络包分析之一 (抓包工具)_第22张图片
  2. 确定一下手机和PC是连接在同一个局域网中:进入手机的设置->点击进入WLAN设置->选择连接到的无线网,长按弹出选项框:如图所示:移动开发网络包分析之一 (抓包工具)_第23张图片
    选择修改网络配置:移动开发网络包分析之一 (抓包工具)_第24张图片

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

  1. 下载Fiddler的安全证书
    使用Android手机的浏览器打开:http://10.2.145.187:8888, 点"FiddlerRoot certificate" 然后安装证书,如图:移动开发网络包分析之一 (抓包工具)_第25张图片
  2. Fiddler抓包如下:移动开发网络包分析之一 (抓包工具)_第26张图片

ios 常见问题分析:

参考技术大牛:
牛人

你可能感兴趣的:(工具类)