Android移动网络如何抓取数据包

1)下载tcpdump工具

tcpdump(dump the traffic on a network)是Linux中强大的网络数据采集分析工具之一,可以将网络中传送的数据包头完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。Android系统是基于Linux,可以使用tcpdump来抓取数据包。由于普通用户不能正常执行tcpdump,具备root权限的用户才可以直接执行它来获取网络上的信息,所以使用它的前提条件是:手机需要具备root权限。

2)将下载好的tcpdump拷贝到手机

adb push D:/tcpdump /data/local(将下载到D盘的tcpdump工具拷贝到/data/local目录下)

3)修改文件权限

①通过命令修改文件权限

adb shell chmod 777 /data/local (777代表目标文件或目录是任何人都可以读、写、执行)

②通过RE文件管理器修改文件权限

Android移动网络如何抓取数据包_第1张图片

 

4)使用tcpdump抓包

/data/local/tcpdump -p -vv -s 0 -w /sdcard/mycapture.pcap(网络操作的log存入到/sdcard/mycapture.pcap下)

Android移动网络如何抓取数据包_第2张图片

 

tcpdump使用方法:

            tcpdump [ -adeflnqtv] [ -c 数量 ] [ -F 文件名 ][ -i 网络接口 ] [ -r 文件名] [-s snaplen ] [ -T 类型 ] [ -w 文件名 ] [表达式 ]

tcpdump选项介绍:

        -a   将网络地址和广播地址转变成名字;

   -d    将匹配信息包的代码以人们能够理解的汇编格式给出;

   -dd     将匹配信息包的代码以c语言程序段的格式给出;

   -ddd   将匹配信息包的代码以十进制的形式给出;

   -e     在输出行打印出数据链路层的头部信息;

   -f      将外部的Internet地址以数字的形式打印出来;

   -l       使标准输出变为缓冲行形式;

   -n      不把网络地址转换成名字;

           -q            快速输出,只输出较少的协议信息;

   -t    在输出的每一行不打印时间戳;

   -v       输出一个稍微详细的信息;

   -vv     输出详细的报文信息;

   -c       在收到指定包的数目后,tcpdump就会停止;

   -F      从指定的文件中读取表达式,忽略其它的表达式;

   -i     指定监听的网络接口;

   -r     从指定的文件中读取包;

           -s             从每个分组中读取最开始的snaplen个字节;

           -T          将监听到的包直接解释为指定类型的报文;

   -w       直接将包写入文件中,并不分析和打印出来;

5)执行网络操作

以反作弊sdk报活日志发送为例:全新安装搜狗输入法→等待1min,发送报活日志→更改手机时间,后调一天,发送报活日志。该网络操作完毕后,关闭DOS窗口即可停止。

6)将mycapture.pcap拷贝到电脑中,用Wireshark打开

Wireshark是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。用wireshark可以筛选出指定host的请求。

Android移动网络如何抓取数据包_第3张图片

 

 

你可能感兴趣的:(Android移动网络如何抓取数据包)