zoukankan      html  css  js  c++  java
  • 三种经典iPhone上网络抓包方法详解

    此文章来自:听云博客

    很多时候需要网络抓包分析,在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

     

  • 相关阅读:
    2020-02-26 今天学了啥?
    2020-02-25 今天学了啥?
    CSS选择器世界
    2019.12.21---今天学了啥?
    2019.12.20--今天学了啥?
    2019.12.19----今天学了啥?
    重拾算法之复杂度分析(大O表示法)
    es6之后,真的不需要知道原型链了吗?
    你真的了解FastClick吗?
    JavaScript中的对象与原型—你不知道的JavaScript上卷读书笔记(四)
  • 原文地址:https://www.cnblogs.com/TingyunAPM/p/5302867.html
Copyright © 2011-2022 走看看