编译适用于Android-x86架构的tcpdump工具

    xiaoxiao2025-11-16  13

    在谷歌和必应上搜索的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链接:root@192.168.92.128:2222tcpdump版本:4.7.4libpcap版本:1.7.3

    注意: 本文使用三台主机,配置如上文所述:

    1、承载虚拟机的Windows 7宿主机,代号为Host-1; 2、用于编译的CentOS虚拟机,代号为Host-2; 3、用于验证使用的Android-x86虚拟机,代号为Host-3。

    二、编译TCPDUMP

    本章节中的操作都是在Host-2上完成的,详细步骤如下所示:

    1. 安装编译环境:

    yum groupinstall -y "Development Tools" yum install -y glibc-static

    2. 下载源码包:

    cd /root/Downloads wget http://www.tcpdump.org/release/tcpdump-4.7.4.tar.gz wget http://www.tcpdump.org/release/libpcap-1.7.3.tar.gz

    3. 解压缩:

    tar xvzf libpcap-1.7.3.tar.gz tar xvzf tcpdump-4.7.4.tar.gz

    4. 编译libpcap:

    cd libpcap-1.7.3 export CC=gcc ./configure --host=i686-pc-linux-gnu --with-pcap=linux make cd ..

    5. 编译tcpdump:

    cd tcpdump-4.7.4 export ac_cv_linux_vers=2 export CFLAGS=-static export CPPFLAGS=-static export LDFLAGS=-static ./configure --host=i686-pc-linux-gnu --disable-ipv6 make

    6. 查看编译结果:

    file tcpdump

    如果看到下图中的结果输出,则表明编译成功:

    三、安装和验证

    在Host-1上,通过Xshell和Xftp连接至Host-3(Android-x86虚拟机),然后:

    1. 上传tcpdump:

    从Host-2中,将前文编译好的tcpdump可执行文件拷贝至Host-1中,然后通过Xftp将tcpdump拷贝至Host-3的/data/local目录中,并且将tcpdump文件的权限修改为777。

    2. 运行tcpdump:

    Host-1的Xshell已经链接至Host-3,则在Xshell中运行以下命令:

    ./tcpdump -i eth0 -n icmp and src host 192.168.92.1

    在Host-1的命令行窗口中运行以下命令:

    ping 192.168.92.128

    如果在Xshell中能够看到下图中的输出,则表明安装成功:

    四、后续

    如果想要自行为基于ARM的安卓手机或开发板编译tcpdump工具,则可以参考以下文章:

    Monitoring Android Network Traffic Part I: Installing The Toolchain | Symantec Connect Community http://www.symantec.com/connect/blogs/monitoring-android-network-traffic-part-i-installing-toolchain Monitoring Android Network Traffic Part II: Cross Compiling TCPDUMP | Symantec Connect Communityhttp://www.symantec.com/connect/blogs/monitoring-android-network-traffic-part-ii-cross-compiling-tcpdump Monitoring Android Network Traffic Part III: Installing & Executing TCPDUMP | Symantec Connect Communityhttp://www.symantec.com/connect/blogs/monitoring-android-network-traffic-part-iii-installing-executing-tcpdump 相关资源:tcpdump-4.9.0-5.el7.x86_64.rpm
    最新回复(0)