编译适用于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
时间: 2024-09-20 00:58:52

编译适用于Android-x86架构的tcpdump工具的相关文章

android intel x86架构源码编译,预装带有so库apk问题?

问题描述 android intel x86架构源码编译,预装带有so库apk问题? 有没有做过android intel x86架构方案上apk预装的,带有so库的,求大神解救,急急急 解决方案 android源码编译apk集成第三方so库android源码编译apk集成第三方so库android源码中打包so到apk的方法 解决方案二: 这是可以得,看下google 解决方案三: 这一事项,很普遍的使用方法

《精通移动App测试实战:技术、工具和案例》一1.2 Android系统架构

1.2 Android系统架构 从图1-1中我们不难发现Android的系统架构采用了分层的架构,分为4个层,从高层到低层分别是应用程序层.应用程序框架层.系统运行库层和Linux内核层.那么它们每层都是用来做什么的呢? 1.应用程序层 应用层是用Java语言编写的运行在Android平台上的程序,比如一些手机游戏和基于手机端的应用等,如图1-1所示,最上面的Applications层. 2.应用程序框架层 应用程序框架层是编写Google发布的核心应用时所使用的API框架,开发人员可以使用这些

最好用的Android黑客应用程序和工具

本文讲的是最好用的Android黑客应用程序和工具,黑客技术,曾被认为是专家的专有领域,但随着技术的崛起和移动安全领域的进步,黑客技术已经变得越来越普遍.随着人们越来越依赖于智能手机和其它的便携式设备来完成他们的日常活动,我们有必要了解一些Android黑客工具.   借助于这些黑客工具,你就可以使用安卓手机来进行渗透测试和安全测试.在这些应用的帮助下,再加上一些对安卓手机能力的基本了解,你就能进入黑客的世界. 这里我们将盘点几款最优秀的安卓黑客应用和工具,这些工具将使你的安卓手机成为一部黑客机

ARM与X86架构的对决

CISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架构.它们的区别在于不同的CPU设计理念和方法.早期的CPU全部是CISC架构,它的设计目的是 CISC要用最少的机器语言指令来完成所需的计算任务.RISC和CISC是设计制造微处理器的两种典型技术,虽然它们都是试图在体系结构.操作运行.软件硬件.编译时间和运行时间等诸多因素中做出某种平衡,以求达到高效的目的,但采用的方法不同,因此,在很多方面差异很大. x86架构采用CISC,而ARM采用RISC. ARM成立于199

Android零基础入门第2节:Android 系统架构和应用组件那些事

原文:Android零基础入门第2节:Android 系统架构和应用组件那些事  继上一期浅谈了Android的前世今生,这一期一起来大致回顾一下Android 系统架构和应用组件.   一.Android 系统架构 Android系统的底层建立在Linux系统之上,该平台由操作系统.中间件.用户界面和应用软件4层组成,它采用一种被称为软件叠层(Software Stack)的方式进行构建.这种软件叠层结构使得层与层之间相互分离,明确各层的分工.这种分工保证了层与层之间的低耦合,当下层的层内或层

Android系统架构基本模式解析

如今,大家面对市场中种类繁多的手机必然挑的眼花缭乱.不过,在智能手机占据主要地位的今天,挑选手机的主要因素就是挑选一款性能高的手机操作系统,Android就是其中的一个必然选择.Android系统架构和其操作系统一样,采用了分层的架构.Android分为四个层,从高层到低层分别是应用程序层.应用程序框架层.系统运行库层和linux核心层. Android系统架构之应用程序 Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系

《Android 网络开发与应用实战详解》——2.3节Android系统架构

2.3 Android系统架构 Android 网络开发与应用实战详解 在本节内容中,将进一步分解Android应用程序,详细剖析Android应用程序的核心构成部分,为读者学习本书后面知识打下基础. 2.3.1 Android体系结构介绍 Android作为一个移动设备的平台,其软件层次结构包括操作系统(OS).中间件(MiddleWare)和应用程序(Application).根据Android的软件框图,其软件层次结构自下而上分为以下4层. (1)操作系统层(OS). (2)各种库(Lib

《深入理解Android:Telephony原理剖析与最佳实践》一1.2 Android系统架构

1.2 Android系统架构 前面学习了智能手机的基本硬件结构,可以通过功能手机与智能手机的特点和区别从本质上认识它们.Android智能手机操作系统作为运行在AP上的开源智能手机操作系统,其系统架构是什么样的呢?我们先看看图1-2. 通过图1-2不难发现,Android手机操作系统是一个基于Linux Kernel的分层智能手机操作系统,其共分为4层,从上到下分别是Java Applications(应用层).Java Frameworks(应用框架层).User Libraries(系统运

Android开源项目第二篇——工具库篇

Android开源项目第二篇--工具库篇 本文为那些不错的Android开源项目第二篇--开发工具库篇,主要介绍常用的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多媒体相关及其他.   最新内容请访问AndroidOpenProject@Github,欢迎Star和Fork.   Android开源项目系列汇总已完成,包括: Android开源项目第一篇--个性化控件(View)篇Android开源项目第二篇--工具库