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 app网络数据 android获取网络数据_文件权限

 

4)使用tcpdump抓包

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

android app网络数据 android获取网络数据_封包_02

 

tcpdump使用方法:

] [-s snaplen ] [ -T 类型 ]

tcpdump选项介绍:

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

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

-dd  c语言程序段的格式给出;

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

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

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

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

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

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

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

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

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

-c   tcpdump就会停止;

-F   ,忽略其它的表达式;

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

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

snaplen个字节;

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

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

5)执行网络操作

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

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

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

android app网络数据 android获取网络数据_文件权限_03