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

简介:

在谷歌和必应上搜索的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:2222
tcpdump版本:4.7.4
libpcap版本: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工具,则可以参考以下文章:

  1. 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
  2. Monitoring Android Network Traffic Part II: Cross Compiling TCPDUMP | Symantec Connect Community
    http://www.symantec.com/connect/blogs/monitoring-android-network-traffic-part-ii-cross-compiling-tcpdump
  3. Monitoring Android Network Traffic Part III: Installing & Executing TCPDUMP | Symantec Connect Community
    http://www.symantec.com/connect/blogs/monitoring-android-network-traffic-part-iii-installing-executing-tcpdump
目录
相关文章
|
18天前
|
Android开发 Swift iOS开发
深入探索iOS与Android操作系统的架构差异及其对应用开发的影响
在当今数字化时代,移动设备已经成为我们日常生活和工作不可或缺的一部分。其中,iOS和Android作为全球最流行的两大移动操作系统,各自拥有独特的系统架构和设计理念。本文将深入探讨iOS与Android的系统架构差异,并分析这些差异如何影响应用开发者的开发策略和用户体验设计。通过对两者的比较,我们可以更好地理解它们各自的优势和局限性,从而为开发者提供有价值的见解,帮助他们在这两个平台上开发出更高效、更符合用户需求的应用。
|
2月前
|
Web App开发 网络协议 数据可视化
tcpdump 和 wireshark 抓包工具 ,介绍、安装、命令使用。 详解三次握手、四次挥手。两个结合使用,会更好分析报文
这篇文章详细介绍了网络抓包工具tcpdump和Wireshark的使用,包括安装、命令选项、过滤器语法,以及如何通过分析TCP的三次握手和四次挥手来理解网络通信细节。
414 1
|
2月前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
110 2
|
2月前
|
存储 前端开发 Java
Android MVVM架构模式下如何避免内存泄漏
Android采用MVVM架构开发项目,如何避免内存泄漏风险?怎样避免内存泄漏?
101 1
|
3月前
|
IDE Android开发 iOS开发
深入解析Android与iOS的系统架构及开发环境差异
本文旨在探讨Android和iOS两大主流移动操作系统在系统架构、开发环境和用户体验方面的显著差异。通过对比分析,我们将揭示这两种系统在设计理念、技术实现以及市场策略上的不同路径,帮助开发者更好地理解其特点,从而做出更合适的开发决策。
180 2
|
20天前
|
Java Linux Android开发
深入探索Android系统架构:从Linux内核到应用层
本文将带领读者深入了解Android操作系统的复杂架构,从其基于Linux的内核到丰富多彩的应用层。我们将探讨Android的各个关键组件,包括硬件抽象层(HAL)、运行时环境、以及核心库等,揭示它们如何协同工作以支持广泛的设备和应用。通过本文,您将对Android系统的工作原理有一个全面的认识,理解其如何平衡开放性与安全性,以及如何在多样化的设备上提供一致的用户体验。
|
19天前
|
安全 Android开发 iOS开发
深入探讨Android与iOS的系统架构差异
本文旨在通过对比分析Android和iOS两大移动操作系统的系统架构,揭示它们在设计理念、安全性、应用生态及开发环境等方面的显著差异。我们将从底层架构出发,逐步剖析至用户界面层面,为开发者和科技爱好者提供一份详尽的技术参考。
28 1
|
27天前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
在 Android 开发中,选择合适的架构模式对于构建中大型项目至关重要。常见的架构模式有 MVVM、MVP、MVI、Clean Architecture 和 Flux/Redux。每种模式都有其优缺点和适用场景,例如 MVVM 适用于复杂 UI 状态和频繁更新,而 Clean Architecture 适合大型项目和多平台开发。选择合适的架构应考虑项目需求、团队熟悉度和可维护性。
49 6
|
27天前
|
安全 搜索推荐 Android开发
深入探索Android与iOS的系统架构差异
【10月更文挑战第29天】 在当今的智能手机市场中,Android和iOS无疑是两大主流操作系统。本文旨在深入探讨这两个系统的架构差异,从底层的操作系统设计到用户界面的呈现,以及它们如何影响了开发者和用户的体验。通过对比分析,我们可以更清晰地理解这两种平台的优势与局限,为开发者在选择开发平台时提供有价值的参考,同时也为用户选择设备提供一定的指导。
44 2
|
2月前
|
前端开发 JavaScript 测试技术
Android适合构建中大型项目的架构模式全面对比
Android适合构建中大型项目的架构模式全面对比
47 2