要求必须有root权限
1、推送android tcpdump到手机data/local路径下
C:\Users\autotest>adb push C:\Users\autotest\Desktop\tcpdump /data/local
1519 KB/s (2202152 bytes in 1.415s)
2、执行命令
126|root@:/data/local # tcpdump -p -s 0 -w /sdcard/001.pcap
tcpdump -p -s 0 -w /sdcard/001.pcaptcpdump: listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes
命令说明:
# "-p": disable promiscuous mode (不使用混杂模式)
# "-s 0": capture the entire packet(-s参数用以指定数据包捕获长度,此处指定为0,意为抓取完整的数据包)
# "-w *.pcap": write packets to a file (将结果写入一个pcap文件,而不在终端上直接显示)
3、取出数据
C:\Users\autotest>adb pull /sdcard/001.pcap D:/001.pcap
955 KB/s (13704 bytes in 0.014s)
4、导入wireshark分析
第一区域用来显示简单的数据包信息,我们用tcpdump抓包的时候,默认情况下也是显示成这样的;第二个区域用来显示选中的数据包的详细信息,细心一点会发现他是按照TCP/IP四层结构显示的,第一行是数据链路层的信息,第二行是网络层信息(IP协议),第三个是传输层信息(TCP协议),第四行是应用层信息(HTTP协议),可以展开每一行用来观察具体的内容;R3区域是用来显示此数据包的真实面目。
参数详解:
root@:/ # tcpdump -help
tcpdump -help
tcpdump version 4.5.1
libpcap version 1.5.2
Usage: tcpdump [-aAbdDefhHIJKlLnNOpqRStuUvxX] [ -B size ] [ -c count ]
[ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
[ -i interface ] [ -j tstamptype ] [ -M secret ]
[ -Q in|out|inout ]
[ -r file ] [ -s snaplen ] [ -T type ] [ -V file ] [ -w file ]
[ -W filecount ] [ -y datalinktype ] [ -z command ]
[ -Z user ] [ expression ]
tcpdump采用命令行方式,它的命令格式为:
tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ]
[ -i 网络接口 ] [ -r 文件名] [ -s snaplen ]
[ -T 类型 ] [ -w 文件名 ] [表达式 ]
tcpdump的选项介绍
-a 将网络地址和广播地址转变成名字;
-d 将匹配信息包的代码以人们能够理解的汇编格式给出;
-dd 将匹配信息包的代码以c语言程序段的格式给出;
-ddd 将匹配信息包的代码以十进制的形式给出;
-e 在输出行打印出数据链路层的头部信息,包括源mac和目的mac,以及网络层的协议;
-f 将外部的Internet地址以数字的形式打印出来;
-l 使标准输出变为缓冲行形式;
-n 指定将每个监听到数据包中的域名转换成IP地址后显示,不把网络地址转换成名字;
-nn: 指定将每个监听到的数据包中的域名转换成IP、端口从应用名称转换成端口号后显示
-t 在输出的每一行不打印时间戳;
-v 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息;
-vv 输出详细的报文信息;
-c 在收到指定的包的数目后,tcpdump就会停止;
-F 从指定的文件中读取表达式,忽略其它的表达式;
-i 指定监听的网络接口;
-p: 将网卡设置为非混杂模式,不能与host或broadcast一起使用
-r 从指定的文件中读取包(这些包一般通过-w选项产生);
-w 直接将包写入文件中,并不分析和打印出来;
-s snaplen snaplen表示从一个包中截取的字节数。0表示包不截断,抓完整的数据包。默认的话 tcpdump 只显示部分数据包,默认68字节。
-T 将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程调用)和snmp(简单网络管理协议;)
-X 告诉tcpdump命令,需要把协议头和包内容都原原本本的显示出来(tcpdump会以16进制和ASCII的形式显示),这在进行协议分析时是绝对的利器。
------------------------------------------------
http://blog.csdn.net/ylyuanlu/article/details/77434091、抓取回环网口的包:tcpdump -i lo
2、防止包截断:tcpdump -s0
3、以数字显示主机及端口:tcpdump -n
tcpdump:(http://download.csdn.net/download/roland_sun/8204931)
http://www.cnblogs.com/anee/archive/2013/09/12/3316139.html
http://drops.wooyun.org/%E8%BF%90%E7%BB%B4%E5%AE%89%E5%85%A8/8885
http://blog.csdn.net/hzhsan/article/details/43445787
wireshark:(下载路径:http://w.x.baidu.com/alading/anquan_soft_down_ub/15788)
http://shensy.iteye.com/blog/1904118