在谷歌和必应上搜索的android-x86专用的tcpdump工具多半不能使用,它们基本上都是在arm架构的安卓手机上使用的,而且版本都较为老旧。由于android-x86的linux内核是通用的32位linux,那么能否在常用的32位linux发行版上直接使用32位的gcc编译tcpdump,然后拷贝至android-x86的模拟器中使用呢?答案是可以的!
linux虚拟主机:centos 6.6 i686
宿主机os:windows 7 sp1
宿主机ip:192.168.92.1
虚拟机软件:vmware workstation 11.0
虚拟机系统:android-x86 4.4 r2
虚拟机cpu:单核
虚拟机内存:1 gb
虚拟机硬盘:8 gb
虚拟机联网方式:host-only
虚拟机ip:192.168.92.128
虚拟机sshd软件:sshdroid
虚拟机ssh链接:[email protected]:2222
tcpdump版本:4.7.4
libpcap版本:1.7.3
注意: 本文使用三台主机,配置如上文所述:
1、承载虚拟机的windows 7宿主机,代号为host-1;
2、用于编译的centos虚拟机,代号为host-2;
3、用于验证使用的android-x86虚拟机,代号为host-3。
本章节中的操作都是在host-2上完成的,详细步骤如下所示:
如果看到下图中的结果输出,则表明编译成功:

在host-1上,通过xshell和xftp连接至host-3(android-x86虚拟机),然后:
从host-2中,将前文编译好的tcpdump可执行文件拷贝至host-1中,然后通过xftp将tcpdump拷贝至host-3的/data/local目录中,并且将tcpdump文件的权限修改为777。
host-1的xshell已经链接至host-3,则在xshell中运行以下命令:
在host-1的命令行窗口中运行以下命令:
如果在xshell中能够看到下图中的输出,则表明安装成功:
如果想要自行为基于arm的安卓手机或开发板编译tcpdump工具,则可以参考以下文章:
monitoring android network traffic part ii: cross compiling tcpdump | symantec connect community
<a href="http://www.symantec.com/connect/blogs/monitoring-android-network-traffic-part-ii-cross-compiling-tcpdump">http://www.symantec.com/connect/blogs/monitoring-android-network-traffic-part-ii-cross-compiling-tcpdump</a>
monitoring android network traffic part iii: installing & executing tcpdump | symantec connect community
<a href="http://www.symantec.com/connect/blogs/monitoring-android-network-traffic-part-iii-installing-executing-tcpdump">http://www.symantec.com/connect/blogs/monitoring-android-network-traffic-part-iii-installing-executing-tcpdump</a>