為Android x86編譯tcpdump工具

2021-07-02 08:00:37 字數 2457 閱讀 3602

在谷歌和必應上搜尋的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

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

cd /root/downloads

wget

wget  

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

2. monitoring android network traffic part ii: cross compiling tcpdump | symantec connect community

3. monitoring android network traffic part iii: installing & executing tcpdump | symantec connect community

讓AndroidX86豎屏顯示

這種介面非常不爽,尤其在除錯程式時,如何才能顯示成豎屏呢?先把androidx86裝到硬碟上 然後進行下面設定 1 完全關閉virtualbox,必須完全關閉,否者修改的引數會還原。2 修改虛擬機器的.vbox檔案 在小節中加入 注 這兩種是標準的android顯示模式 3 修改androidx86...

VMware下Androidx86無聲音的解決辦法

需要手動開啟編輯vmware虛擬機器檔案andorid.vmx,這個檔案放置在安裝時指定的目錄下。1 備份原檔案 2 確認虛擬機器已關閉而不是在掛起狀態 編輯andorid 4.4.vmx檔案,找到以下幾項 sound.present true sound.virtualdev hdaudio so...

Android x86入門之 固化啟動引數

louiswang 自從andorid x86收到關注以來,受到幫助的朋友越來越多,但同時,受到困擾的朋友也月來越多。這裡就一點最近問我的朋友比較多的問題發一篇文來闡述一下。很多朋友最近問我,android x86是很好用沒錯,但是每次進去都要啟動引數都要重新敲一遍,真的很麻煩,有沒有什麼好辦法可以...