此文章来自:听云博客

很多时候需要网络抓包分析,在iPhone上抓包稍有不同,下面介绍三种常用的方式。分析工具以wireshark为例。

一、最简单的方式:用PC作为热点,在PC上抓包


优点:简单

缺点:不能抓真机2g/3g/4g网络数据

步骤如下:

1、PC接上有线

2、PC用wifi方式共享网络,即PC作为一个热点。

3、手机设置网络,选择PC那个热点

4、在PC上打开wireshark,选择要监控的接口,指定wifi端口,开始捕捉。

二、tcpdump命令


优点:优点很多,可以做很高级的定制和选择,可以编程控制

缺点:两个,一是手机必须越狱,二是使用比较麻烦。

步骤如下:

1、下载tcpdump

从cydia搜索安装tcpdump,如果没有搜到,请先添加源http://apt.saurik.com

2、安装openssh

从cydia搜索安装openssh,如果没有搜到,请先添加源http://apt.saurik.com

3、退出cydia,这会重启机器或重启springboard

4、在PC上通过ssh命令访问手机,以root身份,root的初始密码是alpine,例如:

ssh root@192.168.1.118

按提示输入密码之后,就远程登录到手机了(建议第一件事是用pwd立即改掉默认密码),此时可以执行tcpdump命令录制网络数据。

5、tcpdump的简单用法

tcpdump -h  显示帮助信息:

Usage: tcpdump [-aAdDeflLnNOpqRStuUvxX] [-c count] [ -C file_size ]

[ -E algo:secret ] [ -F file ] [ -i interface ] [ -M secret ]

[ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]

[ -W filecount ] [ -y datalinktype ] [ -Z user ]

[ expression ]

关于tcpdump的使用,网上很多,例如:http://blog.chinaunix.net/uid-20237628-id-3946009.html

由于tcpdump只是抓取数据,抓取的数据我们要拿到PC上用wireshark或类似工具分析,因此 -w开关是必须的,它用来指定一个文件,该文件保存抓到的数据,随后我们就把这个文件拷贝到电脑上进行分析。

-i 开关是最重要的,它指定要拦截的网络接口,对于wifi,接口是en0,对于移动数字网络,网络接口是pdp_ip0

例如:

tcpdump -s 0 -i pdp_ip0 -w ~/1.PCap

命令要求抓取移动网络接口的数据,要完整数据包,要保存到~/1.PCap文件。

当需要结束时,用ctrl+z结束tcpdump命令,结束之后,缓存在内存的数据才会完全写入文件。

6、把文件拷贝到PC

用scp命令把文件拷贝到PC:

scp root@192.168.11.211:~/1.PCap ./

(或者ifunbox之类的工具拖拽更简单)

7、现在,可以用wireshark打开1.PCap分析数据了。

总之,tcpdump很强大,也很复杂。以上我故意没有贴图,贴图会让篇幅很大,有点吓人。

三、最佳方式:rvictl命令


优点:简单,而且可以抓所有网络接口的数据

缺点:似乎没有,要求手机iOS5以上不算要求吧?如果说缺点,就是这个命令是xcode的Command Line Tools 中的。

步骤:

1、手机通过usb线连接到PC

2、查看手机的UDID,因为rvictl需要使用它。

可以从iTunes看:

红色区域如果不是UDID,点击它。

用xcode看更方便,window—>devices,然后选择手机,如图:

3、建立连接

格式:rvictl -s <UDID>

例如:

这样,PC上就多了一个虚拟的端口rvi0。可以用 -l参数查看有哪些虚拟端口:

好了,现在可以用wireshark捕捉这个端口的数据了。启动wireshark,并选择网络接口,如图:

无论手机使用的是wifi还是2g、3个、4g,现在你在wireshark里都能实时看到数据了:

是不是非常方便?

4、最后,好习惯是用完关闭:

rvictl -x <UDID>

如:

原文链接:http://blog.tingyun.com/web/article/detail/261

三种经典iPhone上网络抓包方法详解的更多相关文章

  1. Android 下使用tcpdump网络抓包方法

    Android 下使用tcpdump网络抓包方法 抓包需要tcpdump以及Root权限,tcpdump在本文后有下载. 首先把tcpdump传进手机,用adb命令(放SD卡有时会有问题,我一次可以用 ...

  2. 抓包工具:tcpdump抓包命令详解

    抓包工具:tcpdump抓包命令详解 简介: tcpdump全称:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以 ...

  3. iOS系统网络抓包方法

    转到自己的博客收藏. 1. 网络共享 + 可视化抓包工具 基本原理 原理比较简单,ios设备通过代理方式共享连接mac电脑的无线网卡,使用抓包工具抓包,然后进行分析(我们推荐使用Wireshark,在 ...

  4. Linux系统诊断必备技能之二:tcpdump抓包工具详解

    一.简述 TcpDump可以将网络中传送的数据包完全截获下来提供分析.它支持针对网络层.协议.主机.网络或端口的过滤,并提供and.or.not等逻辑语句来帮助你去掉无用的信息. Linux作为网络服 ...

  5. TCPdump抓包命令详解--摘

    http://blog.csdn.net/s_k_yliu/article/details/6665673/ http://starsliao.blog.163.com/blog/static/890 ...

  6. [转]Linux操作系统tcpdump抓包分析详解

    PS:tcpdump是一个用于截取网络分组,并输出分组内容的工具,简单说就是数据包抓包工具.tcpdump凭借强大的功能和灵活的截取策略,使其成为Linux系统下用于网络分析和问题排查的首选工具. t ...

  7. Charles抓包实战详解

    访问我的博客 前言 通过上一篇文章,想必你已经掌握了如何正确安装抓包神器 Charles,如果还是抓不了包,可以再看看. 今天要做是抓包实战,因为我在做网络文学的公司就职,所以就拿网络文学的 APP ...

  8. TCPdump抓包命令详解

    http://starsliao.blog.163.com/blog/static/89048201062333032563/ TCPdump抓包命令 tcpdump是一个用于截取网络分组,并输出分组 ...

  9. Fiddler 抓包工具详解

    Fiddler是一个蛮好用的抓包工具,可以将网络传输发送与接受的数据包进行截获.重发.编辑.转存等操作.也可以用来检测网络安全.反正好处多多,举之不尽呀!当年学习的时候也蛮费劲,一些蛮实用隐藏的小功能 ...

随机推荐

  1. Asp.net Core的代码移植技巧,半天将SqlSugarORM转成Core

    .net  core中有哪些被抛弃的类 1.DataTable DataRow SqlDataAdapter DataRow DataColumn DataColumn 虽然这些类不是我ORM核心功能 ...

  2. mysql的timeout

    mysql的timeout 很多时候我们连接mysql会在timeout这里跌倒,这里明确下mysql的timeout: 下面是获取timeout的变量: mysql> show global ...

  3. Java魔法堂:URI、URL(含URL Protocol Handler)和URN

    一.前言 过去一直搞不清什么是URI什么是URL,现在是时候好好弄清楚它们了!本文作为学习笔记,以便日后查询,若有纰漏请大家指正! 二.从URI说起    1. 概念 URI(Uniform Reso ...

  4. C#对图片文件的压缩、裁剪操作初探

    在做项目时,对图片的处理,以前都采用在上传时,限制其大小的方式,这样带来诸多不便.毕竟网站运维人员不一定会对图片做处理,经常超出大小限制,即使会使用图片处理软件的,也由于个人水平方面原因,处理效果差强 ...

  5. Mac下JDK安装配置

    首先可以通过官网下载JDK:http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html,至于下什么版本根 ...

  6. Razor练习1

    学习ASP.NET MVC, Razor语法必须掌握,这篇学习: Razor code blocks are enclosed in @{ ... }Inline expressions (varia ...

  7. ASP.NET MVC ValueProvider小结

    在Model绑定中,Model的数据来源有很多种,在MVC里面则定义了一套ValueProvider的组件来处理Model数据来源多样性的问题,ValueProvider整个结构类似于字典(Dictr ...

  8. JavaBean 的小知识点

    /** * @author http://roucheng.cnblogs.com * @version 2016-05-08 */ public class Person { private Str ...

  9. IT技术开发人员获得成功的六大步骤

    IT技术开发人士成功的6大步骤 一个前辈在移民加拿大后写的文章,写得不错,值得借鉴,转来给大家看看,也给自己   序言:经过001多年的洗礼,认识了这里这么多的JJMMGGDD,前几天刚得到签证, 无 ...

  10. Android获取系统时间方法的总结

    Android获取系统时间方法的方法有很多种,常用的有Calendar.Date.currentTimeMills等方法. (1)Calendar Calendar获取系统时间首先要用Calendar ...