对Android网络抓包分析,一般是使用tcpdump抓个文件,再到PC用Wireshark打开分析。能不能达到直接使用Wireshark的效果? 答案是可以的,至少已经非常接近了。实现起来很简单,原理就是将tcpdump的数据重定向到网络端口,再通过管道(pipe)转到wireshark就可以了。
基本结构如下图所示:
Android上使用的指令:
tcpdump
netcat, 又称为瑞士军刀,小巧而功能强悍。如果在手机没有nc指令,可以方便地使用busybox提供的版本(直接到Google Play里安装)。
Wireshark, 不啰嗦了。
准备好了工具,依下面的方式执行两条指令就可以了 (只需要替换tcpdump所在的路径,以及nc前要不要加个busybox):
使用adb shell在Android设备上执行:
在主机的命令下执行:
在Mac OS下有时需要在wireshark前加上sudo, 不然打开失败。如果没有看到结果,可以在nc指令加-v参数,显示更多的信息来查看。比如出现”Connection refused“时,注意检查指定的端口号是否正确。
也可以参考这里:
效果如下,注意标题显示”Capturing from Standard Input”。
补充说明tcpdump详解
什么是libpcap格式
wireshark参数
Wireshark还带一些其它指令,如下:
您可能感兴趣的文章