实时监控Android设备网络封包
2015-05-30 22:47
344 查看
对Android网络抓包分析,一般是使用tcpdump抓个文件,再到PC用Wireshark打开分析。能不能达到直接使用Wireshark的效果? 答案是可以的,至少已经非常接近了。实现起来很简单,原理就是将tcpdump的数据重定向到网络端口,再通过管道(pipe)转到wireshark就可以了。
基本结构
如下图所示:
![](http://tech.uc.cn/wp-content/uploads/2013/09/03-300x74.png)
Android上使用的指令:
i. tcpdump
基本结构
如下图所示:
![](http://tech.uc.cn/wp-content/uploads/2013/09/03-300x74.png)
Android上使用的指令:
i. tcpdump
正是因为可以生成libpcap格式的数据,Wireshark可以加以处理。 官网:http://www.tcpdump.org/ 下面这个链接介绍了Android版本的编译: http://omappedia.org/wiki/USB_Sniffing_with_tcpdump[/code] ii. netcat, 又称为瑞士军刀,小巧而功能强悍。如果在手机没有nc指令,可以方便地使用busybox提供的版本(直接到Google Play里安装)。http://www.busybox.net/
iii. Wireshark, 不嗦了。http://www.wireshark.org/
两条指令
准备好了工具,依下面的方式执行两条指令就可以了 (只需要替换tcpdump所在的路径,以及nc前要不要加个busybox):
i. 使用adb shell在Android设备上执行:tcpdump -n -s 0 -w - | busybox nc -l -p 11233 *其中nc -l -p 11233, 即建立一个服务器端,以11233端口提供服务。需要以root用户执行。
ii. 在主机的命令下执行:adb forward tcp:11233 tcp:11233 && nc 127.0.0.1 11233 | wireshark -k -S -i - *其nc 127.0.0.1 11233,即建立一个客户端,连接到本机的11233端口。wireshark的参数见后面的补充说明。
*在Mac OS下有时需要在wireshark前加上sudo, 不然打开失败。如果没有看到结果,可以在nc指令加-v参数,显示更多的信息来查看。比如出现”Connection refused“时,注意检查指定的端口号是否正确。
也可以参考这里:http://www.kandroid.org/online-pdk/guide/tcpdump.html
效果如下,注意标题显示”Capturing from Standard Input”。
补充说明
i. tcpdump详解http://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html
ii. 什么是libpcap格式http://wiki.wireshark.org/Development/LibpcapFileFormat
iii. wireshark参数http://man.lupaworld.com/content/network/wireshark/c9.2.html 官方:http://www.wireshark.org/docs/man-pages/wireshark.html
*Wireshark还带一些其它指令,如下:http://www.wireshark.org/docs/man-pages/
相关文章推荐
- can not find the tag library descriptor for http //java.sun.com/jsp
- 跨平台网络数据传输过程中的主机字节顺序和网络字节顺序
- linux基础网络设置
- HTTP语言
- 网络工程师必备素质-IP地址练习题
- 网络编程中close与shutdown区别
- Drill中实现HTTP storage plugin
- Linux软件包安装2——基于red hat系列的rpm命令安装及apache简单搭建httpserver
- xmu 1076: 安全网络 ver.3(最小生成树模型)
- xmu 1074: 安全网络 ver.1(MST模型)
- linux常用命令-简单网络通信命令
- TCP连接状态详解
- cocos2dx3.3 C++和Android的网络连接状态
- 【转载】C# HttpWebRequest 发送SOAP XML
- (转载)HttpWebRequest的GetResponse或GetRequestStream偶尔超时 + 总结各种超时死掉的可能和相应的解决办法
- C#中HttpWebRequest的GetRequestStream执行的效率太低,甚至偶尔死掉
- 在ATS 5.3.0上开启stats_over_http插件
- TCP/IP 笔记 1.1 概 述
- 网络开发总结
- 第十四篇 迷茫的星期六