使用tcpdump抓包

  工作中为了抓取设备的通信数据包,用到了tcpdump进行抓包。

  我们需要先有一个tcpdump文件,这个文件可以去下面的的地址中去下载;

https://www.androidtcpdump.com/android-tcpdump/downloads

  我们会需要使用adb shell环境。下面的操作都是在adb shell环境中进行的。

  接下来我们需要把tcpdump文件放入设备中,比如我选择将tcpdump文件放入设备的system/bin/文件夹下;

adb push xxxPath(tcpdump文件的路径) /system/bin/tcpdump(直接把tcpdump的名字也写入,因为我遇到过不在路径中添加tcpdump的名字,就没有把tcpdump写入到设备中的情况,所以现在会在设备路径上添加上tcpdump的名字)

  如果出现不允许写入文件到设备的情况,可以在写入文件之前,先使用下面的命令:

adb root
adb remount

  当把tcpdump文件导入到设备中以后,接下来执行下面的指令:

su
setenforce 0
chmod 6755 /system/bin/tcpdump
./system/bin/tcpdump -i any -p -s 0 -w /sdcard/kang.pcap
命令 作用
-i any
-p 不使用混杂模式
-s 0 -s参数用以指定数据包捕获长度,此处指定为0,意为抓取完整的数据包
-w /sdcard/kang.pcap 将结果写入到一个pcap文件中,而不是在终端上直接显示

  执行上面的指令,其中最后一行指令/sdcard/kang.pcap是把抓的包存放在设备的sdcard目录下,把抓的包命名为kang.pcap;在执行了上面最后一行以后,设备就开始进行抓包了,等到你觉得抓包的时间可以了,就可以中断抓包操作了,使用Ctrl + C进行中断就可以了。

  把抓的包kang.pcap文件从设备中导出以后,就可以使用wireshark工具进行分析数据包了。