三种经典iPhone上网络抓包方法详解
2016-03-24 12:19
387 查看
原文链接:http://geek.csdn.net/news/detail/63268
很多时候需要网络抓包分析,在iPhone上抓包稍有不同,下面介绍三种常用的方式。分析工具以wireshark为例。
优点:简单;
缺点:不能抓真机2G/3G/4G网络数据。
步骤如下:
PC接上有线;
PC用Wi-Fi方式共享网络,即PC作为一个热点;
手机设置网络,选择PC那个热点;
在PC上打开wireshark,选择要监控的接口,指定Wi-Fi端口,开始捕捉。
优点:优点很多,可以做很高级的定制和选择,可以编程控制;
缺点:两个,一是手机必须越狱,二是使用比较麻烦。
步骤如下:
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,例如:
按提示输入密码之后,就远程登录到手机了(建议第一件事是用pwd立即改掉默认密码),此时可以执行tcpdump命令录制网络数据。
5. tcpdump的简单用法
关于tcpdump的使用,网上很多,例如:http://blog.chinaunix.net/uid-20237628-id-3946009.html
由于tcpdump只是抓取数据,抓取的数据我们要拿到PC上用wireshark或类似工具分析,因此 -w开关是必须的,它用来指定一个文件,该文件保存抓到的数据,随后我们就把这个文件拷贝到电脑上进行分析。
-i 开关是最重要的,它指定要拦截的网络接口,对于Wi-Fi,接口是en0,对于移动数字网络,网络接口是pdp_ip0。例如:
命令要求抓取移动网络接口的数据,要完整数据包,要保存到~/1.PCap文件。
当需要结束时,用ctrl+z结束tcpdump命令,结束之后,缓存在内存的数据才会完全写入文件。
6. 把文件拷贝到PC
用scp命令把文件拷贝到PC(或者ifunbox之类的工具拖拽更简单):
7. 现在,可以用wireshark打开1.PCap分析数据了。
总之,tcpdump很强大,也很复杂。以上我故意没有贴图,贴图会让篇幅很大,有点吓人。
优点:简单,而且可以抓所有网络接口的数据;
缺点:似乎没有,要求手机iOS5以上不算要求吧?如果说缺点,就是这个命令是Xcode的Command Line Tools 中的。
步骤:
1. 手机通过USB线连接到PC;
2. 查看手机的UDID,因为rvictl需要使用它。
可以从iTunes看:
红色区域如果不是UDID,点击它。
用Xcode看更方便,window—>devices,然后选择手机,如图:
3. 建立连接
格式:rvictl -s
例如:
这样,PC上就多了一个虚拟的端口rvi0。可以用 -l参数查看有哪些虚拟端口:
好了,现在可以用wireshark捕捉这个端口的数据了。启动wireshark,并选择网络接口,如图:
无论手机使用的是wifi还是2g、3个、4g,现在你在wireshark里都能实时看到数据了:
是不是非常方便?
4. 最后,好习惯是用完关闭:
如:
本文为听云(http://www.tingyun.com/)投稿,作者杨凯。
很多时候需要网络抓包分析,在iPhone上抓包稍有不同,下面介绍三种常用的方式。分析工具以wireshark为例。
一、最简单的方式:用PC作为热点,在PC上抓包
优点:简单;缺点:不能抓真机2G/3G/4G网络数据。
步骤如下:
PC接上有线;
PC用Wi-Fi方式共享网络,即PC作为一个热点;
手机设置网络,选择PC那个热点;
在PC上打开wireshark,选择要监控的接口,指定Wi-Fi端口,开始捕捉。
二、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 开关是最重要的,它指定要拦截的网络接口,对于Wi-Fi,接口是en0,对于移动数字网络,网络接口是pdp_ip0。例如:
tcpdump -s 0 -i pdp_ip0 -w ~/1.PCap
命令要求抓取移动网络接口的数据,要完整数据包,要保存到~/1.PCap文件。
当需要结束时,用ctrl+z结束tcpdump命令,结束之后,缓存在内存的数据才会完全写入文件。
6. 把文件拷贝到PC
用scp命令把文件拷贝到PC(或者ifunbox之类的工具拖拽更简单):
scp root@192.168.11.211:~/1.PCap ./
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
例如:
这样,PC上就多了一个虚拟的端口rvi0。可以用 -l参数查看有哪些虚拟端口:
好了,现在可以用wireshark捕捉这个端口的数据了。启动wireshark,并选择网络接口,如图:
无论手机使用的是wifi还是2g、3个、4g,现在你在wireshark里都能实时看到数据了:
是不是非常方便?
4. 最后,好习惯是用完关闭:
rvictl -x <UDID>
如:
本文为听云(http://www.tingyun.com/)投稿,作者杨凯。
相关文章推荐
- TCP/IP面试题整理
- Volley+OkHttp的整合
- Windows2012中安装PHP-5.6.20+Apache httpd2.4.18+Composer+Laravel+MySQL5.7
- tcpcopy
- Applet建立HTTP连接报错java.security.AccessControlException
- 使用cmd命令里的 tasklist 和 netstat 获取当前各进程的网络连接
- iOS音频篇:使用AVPlayer播放网络音乐
- Python学习笔记-httplib使用例子
- okHttp的封装
- iOS开发网络篇—数据缓存
- 网络编程的最佳实践
- Glide 入门到精通之十四 ——集成网络栈
- jquery ajax 报交请求返回 HTTP 400 错误
- commons-httpclient-3.1.jar的一些用处
- 神经网络那些事儿(一)
- httpmine jar包
- 数据仓库专题22-网络用户行为数据采集标准规范设计
- [IOS 开发] iOS音频篇:使用AVPlayer播放网络音乐
- 网络地址转换NAT原理及应用
- iOS9 HTTP 不能正常使用的解决办法