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文件管理器修改文件权限
4)使用tcpdump抓包
/data/local/tcpdump -p -vv -s 0 -w /sdcard/mycapture.pcap(网络操作的log存入到/sdcard/mycapture.pcap下)
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的请求。