使用Mac抓取iPhone数据包
一.Mac使用”互联网共享”作为Wifi热点
调试iPhone程序时需要抓取iPhone上的数据包,iPhone上没有抓包程序,可以通过Mac的“互联网分享”功能将Mac设为Wifi热点,iPhone通过Mac热点连接到网络,从而在Mac上运行抓包程序可以抓取到iPhone上的数据包。本文描述在Mac上建立Wifi热点的方法。
- 首先说明当前Mac系统为Mac OS X Lion 10.7.4,Lion之前的系统设置方法不一样。
- 因为要将其他网络连接通过Wifi分享,所以Mac本身的的互联网连接就不能使用Wifi了,悲剧的换上网线。通过”系统偏好设置”中的”网络”确认当前网络连接为以太网。
- 通过“系统偏好设置”的“分享”按钮进入“分享”页面
- 在“分享”页面,设置将”以太网”连接通过端口”Wifi”分享
点击”Wi-Fi 选项…”设置Wifi热点的名称,频段以及密码
- 设置完成后,点击分享页面左侧的”互联网共享”,若当前Wifi为关闭状态,则提示是否打开Wifi;
点击”打开 Wi-Fi”后,接着弹出“确认启动互联网共享”的提示;
点击”启动”后,左侧的“互联网共享”复选框会被选上,Wifi热点就建立成功了。
- 查看此时的Wifi状态
这里有显示”Wi-FI有自分配的IP地址…..,将无法接入互联网”,其实是可以连接到互联网的,网络上有些帖子说此时连不上网,有回复说可以通过“高级…”选项中手工修改IP解决,仅供参考。
此时状态栏中的WiFi图标为
- 在iPhone上搜索刚才建立的Wifi热点并连接
此时iPhone上的IP地址为10.0.2.2
- 在Mac上运行WireShark就可以抓取到iPhone上的数据包了,如图
二.Mac上使用代理软件作为HTTP代理服务器
上述”互联网共享”方法的优点在于可以抓取任意类型的数据包,缺点在于Mac本身需要使用有线连接,如果没有有线环境就无法使用,即使有的话切换起来也比较麻烦。
如果要抓取的数据只是HTTP数据时,则可以使用其他一些代理软件将Mac(window、Linux)系统设为代理服务器,设置iPhone的HTTP代理为Mac电脑,同样可以在Mac电脑上抓包。常用的Web数据分析工具都具有代理功能。
比如Charles,使用Charles可以查看HTTP,SSL/HTTPS数据,见
Monitoring an iPhone’s HTTP traffic (Part 1)
Monitoring an iPhone’s HTTPS traffic (Part 2)
另外一款开源的软件是andiparos,使用方式和Charles类似。Charles的默认代理端口时8888,andiparos的默认代理端口为8080。
当Mac与iPhone在同一局域网内(同一Wifi环境下)时,启动上述代理软件,在iPhone上设置HTTP代理,服务器设为Mac电脑的IP,端口根据代理软件中的配置设置(8888或8080)。
这样,当iPhone访问HTTP数据时,Charles或andiparos中就会抓取到HTTP数据并分析,使用WireShark监听代理端口也可以抓取到更详细的数据包。
类似的软件还有Fiddler,但没有Mac版本,只能在windows环境中使用。
转自:http://www.winddisk.com/2012/08/25/mac_capture_iphone_package/