Android利用tcpdump和wireshark抓取网络数据包

1、下载并安装tcpdump  

下载地址:tcpdump

安装tcpdump,命令行模式依次执行:

adb root

adb push C:\Users\Trinea\Desktop\tcpdump /data/local/tcpdump

adb shell chmod 6755 /data/local/tcpdump

其中adb push的第一个参数为本地tcpdump的路径。

2、启动并运行tcpdump

命令行模式运行下面命令:

1adb shell /data/local/tcpdump -n -s 0

这时在手机上做任何涉及到网络的操作都会在屏幕上打印出来,可以通过ctrl+c停止。

由于命令行最大输出的限制及屏幕不断滚动,查看不方便,我们可以将抓取的网络包保存到sd卡,如下命令:

1adb shell /data/local/tcpdump -i any -p -s 0 -w /sdcard/netCapture.pcap

依然通过ctrl+c停止,将文件拉取到本地PC

1adb pull /sdcard/netCapture.pcap d:\\

通过–help我们发现tcpdump支持如下参数:

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 ]

其中-c表示监控的请求个数;-C表示存储文件的最大大小;

-i表示监控的类型;-s表示抓取的网络请求返回的大小,0表示抓取整个网络包;-w表示抓取的包保存的文件路径,此时不会在标准输出打印。并且可以添加port参数表示端口。


3、利用wireshark分析数据

wireshark下载地址,中文版地址:http://www.onlinedown.net/softdown/2883_2.htm,英文版地址(需要翻墙):http://www.wireshark.org/download.html

用wireshark打开capture.pcap即可分析log

关于wireshark具体可见:http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html


前提:手机需要先root 具体如何root 自行百度  模拟器是本身就是root的

你可能感兴趣的:(Android利用tcpdump和wireshark抓取网络数据包)