爲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鏈接:[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。

二、編譯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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章