@[toc]
抓包工具 分析
移动端抓包工具有:
- Charles, Fidder 这两款软件都是在电脑上面允许,通过设置IP设置,网络包路由到电脑上抓取。
- 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
安装完成后需要注意:
- 添加 SSL 配置
Charles -> Proxy -> SSL Proxying Settings -> SSL Proxying
添加对应的域名和端口,为了方便起见,可以直接添加, 通配符配置,端口号为。 - 配置手机代理
手机和 Mac 连接到同一个 WIFI 网络。
Android -> Settings -> Wi-Fi -> 长按当前 Wi-Fi -> Modify network
Advanced options
Proxy -> Manual
Proxy hostname -> Mac 的 IP
Proxy port -> 8888
Save - 安装 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
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 过滤请求
- Filter 栏–>过滤关键字
- 在 Charles 的菜单栏选择Proxy –> Recording Settings –>Include –> add( 依次填入协议+主机地址+端口号,实现只截取目标网站的封包 )
-
在想过滤的网络请求上右击,选择 “Focus”,在 Filter 栏勾选上 Focussed
在这里插入图片描述
2.3.3.2 截取 iPhone 上的网络封包
-
先设置Charles : Charles 上的设置
Proxy –> Proxy Settings –>端口填 8888 –>勾选 Enable transparent HTTP proxying .
在这里插入图片描述 - 设置ios设备:
首先,你的iphone链接的wifi要和电脑一样
然后,选择你连接的WiFi,划到底部,配置代理,IP选择你电脑的IP,端口就是上面配置的8888
比如:
-
电脑上打开Charles, iPhone 上的任意连网的程序,
然后,Charles 就会弹出 iPhone 请求连接的确认菜单,点击 “Allow” 即可完成设置。
在这里插入图片描述
2.3.3.3 模拟慢速网络
-
选择 Proxy –> Throttle Setting –>勾选上 Enable Throttling –> 选择Throttle Preset 类型
在这里插入图片描述 -
若只想模拟指定网站的慢速网络,再勾选图中的 Only for selected hosts 项,然后在对话框的下半部分设置中add指定的 hosts 项。
3. Android 抓包工具使用 Fidder 使用
3.1 工具介绍
ios android app都可以通过Fidder抓包分析。
Fidder下载地址:点击这里下载Fidder
-
打开Fiddler, Tools-> Fiddler Options (配置完后记得要重启Fiddler)
选中"Decrpt HTTPS traffic", Fiddler就可以截获HTTPS请求
选中"Allow remote computers to connect". 是允许别的机器把HTTP/HTTPS请求发送到Fiddler上来
在这里插入图片描述
记住这个端口号是:8888
-
设置手机
首先获取PC的ip地址:命令行中输入:ipconfig,获取ip地址
在这里插入图片描述 -
确定一下手机和PC是连接在同一个局域网中:进入手机的设置->点击进入WLAN设置->选择连接到的无线网,长按弹出选项框:如图所示:
在这里插入图片描述
选择修改网络配置: 在这里插入图片描述
选择显示高级选项,将代理设置成手动,将上面获取到的ip地址和端口号填入,点击保存。这样就将我们的手机设置成功了
-
下载Fiddler的安全证书
使用Android手机的浏览器打开:http://10.2.145.187:8888, 点"FiddlerRoot certificate" 然后安装证书,如图: 在这里插入图片描述
- Fiddler抓包如下: 在这里插入图片描述
ios 常见问题分析:
参考技术大牛:
牛人
网友评论