手机抓包工具汇总【转】

转自:http://blog.zengrong.net/post/2646.html

做移动开发,抓包是基本功。现在的开发者当真是非常幸福,因为抓包工具已经非常成熟了。

在移动设备上抓包,需要下面几个方面的配合:

  1. 移动设备支持;
  2. 代理服务器;
  3. 分析工具。

初级工具

先说个抓 HTTP(HTTPS) 包的例子算是入门啦。

移动设备支持

操作系统越狱或root移动设备支持
Android操作系统自带代理
iOS操作系统自带代理

代理服务器+分析工具

操作系统软件
WindowsFiddler
macOSCharles

Fiddler 是 freeware, 它的 macOS 版本已经在进行 beta 测试了,由于采用了 .NET Framework,它的 macOS 版本可以基于 mono 运行。

Charles 是商业软件,它也有 Windows 版本,由于使用 JAVA 编写,它的 Windows 版很容易实现。

既然它们都已经是全平台支持,怎么选就看你了。我目前主要在 macOS 下工作。就介绍 Charles 好了。

Charles 的配置很简单,只需要 在 Proxy->Proxy Settings 对话框中启动 HTTP Proxy,然后在移动设备上设置代理为 macOS 的 IP 地址即可。

Proxy Settings

设置 Charles


HTTP Proxy iOS

设置 iOS 的 HTTP 代理


HTTP Proxy Mi

设置 Android(小米手机) 的 HTTP 代理


HTTP Proxy 修改

HTTP Proxy 填写

有些安卓系统的 HTTP 代理设置需要长按 WIFI 名称,单击“修改网络”


接着要做的就是拿起手机访问访问网络。下图是我在 iOS 设备上使用 Safari 访问百度的包信息。是的,HTTPS 也是可以解密的,参见 Charles 的官方文档 SSL Proxying 即可。

Charles Baidu

Fiddler 的操作也类似,网上大把教程,这里就略过了。

进阶工具

有些应用比较调皮,不走操作系统的 HTTP 代理。还有些应用(例如游戏)直接走 TCP 协议,无法使用 HTTP 代理抓包。虽然 Charles 支持 SOCKS 代理,但无法分析 TCP 包。

这就需要祭出大杀器 tcpdump 和 Wireshark 啦。还有一些 App 可以直接运行在 Android 上进行抓包,这也是很方便的啊。

 还可以使用透明代理来处理这些不走系统代理的应用,我在 [mitmproxy 应用(一)基础代理][2652] 一文中作了介绍。

移动设备支持

操作系统越狱或root移动设备支持
AndroidPacketCapture
AndroidtPacketCapture
Androidtcpdump
iOSrvictl

代理服务器+分析工具

操作系统软件
WindowsWireshark
macOSWireshark

Android - 支持抓包的 App(不需要 Root 权限)

PacketCapture 和 tPacketCapture 可以直接安装在 Android 设备上,他们会在设备上启动一个 VPN,让所有的网络流量都从 VPN 经过,从而实现抓包。这两个 App 在安装的时候都不需要 Root 权限。

包内容可以保存成 PCAP 格式,将其传到桌面环境中使用 Wireshark 打开分析。Charles 也可以打开 PCAP 格式,但是仅能分析其中的 HTTP 协议内容。

Packet Capture
Packet Capture

Packet Capture 抓包界面


tPacketCapture
tPacketCapture

tPacketCapture 抓包界面


Packet Capture 目前只能保存单个包,这略显不便。tPacketCapture 则可以将包内容直接保存到文件中。

Android - 使用 tcpdump 抓包(需要 Root 权限)

在 Android 上安装专用于安卓的 tcpdump ,然后启动它对 Android 的网卡抓包。这个方法很简单粗暴,但需要拥有 Root 权限。

用数据线将 Root 过的 Android 设备连上电脑,并开启 USB 调试:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 检查设备是否连接
adb devices
# 登入移动设备
adb shell
# 切换到 Root 用户
su          
# 修改文件夹权限
chmod 777 /data/local/
# 退出移动设备
exit
# 上传前面下载的 tcpdump 文件到移动设备
adb push ~/Downloads/tcpdump /data/local/  
# 登入移动设备
adb shell
# 切换到 Root 用户
su          
# 赋予 tcpdump 执行权限
chmod 777 /data/local/tcpdump
# 改回文件夹权限
chmod 775 /data/local/
# 开始抓包,结果存到 SD 卡的 tcpdump.pcap 文件
/data/local/tcpdump -p -vv -s 0 -w /sdcard/tcpdump.pcap

此时可以在手机上进行正常操作了。抓包结束的时候使用 Ctrl+C 结束 tcpdump 的执行,将 /sdcard/tcpdump.pcap 复制到桌面环境,使用 Wireshark 打开进行分析就 OK 啦。

Wireshark 分析 tcpdump 结果

iOS - 使用 rvictl 抓包(不需要越狱)

RVI 代表的意思是 Remote Virtual Interface 。这是 XCode 自带的一个工具,它可以将连接到 macOS 的 iOS 设备的网卡虚拟成 macOS 的网络设备。

若碰到提示 rvictl: command not found ,那么可能你需要访问 App Store ,安装 XCode 并运行一次。

先使用数据线连接 iOS 设备,打开 iTunes 获取 UDID,在保持数据线连接的情况下,执行下面的命令创建虚拟设备 rvi0 (xxxx代表设备的 UDID):

1
2
rvictl -s xxxxxxxxxxxxxxx
Starting device xxxxxxxxxxxxxxx [SUCCEEDED] with interface rvi0

开启 Wireshark 或者 tcpdump (macOS 自带) ,选择设备 rvi0 抓包即可。

抓包完毕后,要用 rvictl -x 取消使用。

更简单的办法

桌面系统上的 Wireshark 和 tcpdump 可以对该系统的网络设备抓包。因此我们只需保证移动设备的所有流量经过某个网络设备,就能得到它传输的所有信息。

把桌面设备变成一个热点,让移动设备通过该热点上网就能做到这点了。无论桌面设备使用有线网络还是无线网络,只需要购买一个无线网卡就能实现热点功能。不用做任何配置,就能抓包了。

其他工具

mitmproxy = Man In The Middle Proxy,这个名字相当的拉风啊。它是使用 Python + C 实现的开源软件。

mitmprxoy 是基于命令行界面的,但同时它可以在命令行界面进行交互。 另外,它也提供了一个类似于 tcpdump 的 mitmdump 工具。为了方便查看,它还提供了 mitmweb 这个可视化分析工具。

我写了两篇文章来介绍 mitmproxy 的应用。

另一个稍微小众一点的工具 burp 虽然是商业软件,但免费版提供的功能已经够用了。

苹果提供了一个相当详细的如何抓包的文档,其中提到了许多抓包软件和方法,值得一看:Getting a Packet Trace 。

引用:Wireshark是一个网络封包分析软件,它除了可以抓包外,还提供了可视化分析网络包的图形页面,并内置了一系列的汇总分析工具。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。网络管理员使用Wireshark来检测网络问题,网络安全工程师使用Wireshark来检查资讯安全相关问题,开发者使用Wireshark来除错新的通讯协议,普通使用者使用Wireshark来学习网络协议的相关知识。Wireshark可以帮助用户捕获网络数据包,并提供多种功能来分析、过滤和可视化这些数据包。通过设置捕获过滤器和显示过滤器,用户可以定制化地捕获和分析特定的网络数据,避免被不相关的数据干扰。用户还可以使用着色规则和构建图表等功能来更加直观地展示网络数据的变化情况。此外,Wireshark还提供了重组数据的功能,可以帮助用户抓取完整的数据,特别适用于传输较大的图片或文件时。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Wireshark --> 抓包(网络分析)工具](https://blog.csdn.net/renfng/article/details/123735668)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [网络安全工具——Wireshark抓包工具](https://blog.csdn.net/p36273/article/details/130800459)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值