使用Mac 抓取 iPhone 请求数据

抓包使用工具

要对iphone手机进行抓包,有两种方式,wiresharktcpdump,

我使用tcpdump抓包之后,结果也是使用wireshark做的分析,所以这里就只把wireshark的抓包方式描述一下

抓取手机请求,需要使用USB线将手机连接到Mac电脑

步骤

1、获取UDID

可以使用Xcode->window->Devices and Simulators

也可以使用iTunes查看,对应设备的uuid

2、安装RVI

需要使用 rvictl 在Mac上为创建虚拟网络接口,并使用wireshark对这个接口进行流量分析

rvictl 命令

rvictl -h 查看当前rvictl支持的命令

rvictl -l 或 -L 列出当前正在运行的设备id

rvictl -s 或 -S 启动对应id的设备的虚拟接口

rvictl -x 或 -S 关闭对应id的设备的虚拟接口

当启动 设备之后,可以使用 ifconfig -l 列出当前的网卡信息查看是否有 rvi0

一开始遇到问题:zsh: command not found: rvictls

查看有多种解决方案

方案1

下载对应版本的command tools for xcode 然而没有什么作用

方案2

进入 /usr/bin,查看有没有rvictls安装,
没有的话,进入Xcode.app/Contents/Resources/Packages/目录,
安装 MobileDevice.pkgMobileDeviceDevelopment.pkg 两个安装包

重启终端,再执行指令,但是依然没有作用

方案3

从终端全局搜索rvictl , 发现这个文件在我电脑的安装目录 为 /Library/Apple/usr/bin/rvictl

执行 sudo /Library/Apple/usr/bin/rvictl -s <UDID> 发现起作用了

可以将配置添加到环境变量中

$sudo nano /etc/paths
添加  /Library/Apple/usr/bin/ 并保存

3、使用wireshark

wireshark的官网

打开wireshark

遇到问题:The capture session could not be initiated on interface 'rvi0' (You don't have permission to capture on that device) 报错没权限

解决方案

方案1、关闭wireshark,在命令行输入

$ sudo /Applications/Wireshark.app/Contents/MacOS/Wireshark

方案2、去 /dev 目录下,将bp*匹配的文件所有权改为自己(我使用的这个方案)

sudo -i
cd /dev
chown -R 当前账号  bp*

方案3、给网卡赋777权限,允许对网卡进行操作

$ sudo chmod 777 /dev/bpf*
posted @ 2020-03-17 23:13  absty_guo  阅读(1479)  评论(0编辑  收藏  举报