Android下使用TCPDUMP實(shí)現(xiàn)數(shù)據(jù)抓包教程
如果想分析Android下 某個(gè)APP的網(wǎng)絡(luò)數(shù)據(jù)交互,需要在Android手機(jī)上抓包,最常用的抓包工具非tcpdump莫屬,用tcpdump生成Wireshark識(shí)別的 pcap文件,然后將pcap文件下載到電腦上,用電腦上的Wireshark加載pcap文件,通過(guò)Wireshark分析tcpdump抓取的數(shù)據(jù)。
一、安裝tcpdump
為Android手機(jī)安裝tcpdump,首先必須將Android手機(jī)root,現(xiàn)在市面上常用的root工具都很傻瓜很強(qiáng)大,推薦使用root精靈,將手機(jī)root以后,我們就可以為手機(jī)安裝tcpdump了。
先下載tcpdump文件, 下載地址:http://xiazai.jb51.net/201502/other/tcpdump.rar
adb push tcpdump /sdcard/
adb Shell
su
cat /sdcard/tcpdump > /system/bin/tcpdump
上一條命令如果提示沒有權(quán)限,接著執(zhí)行如下命令嘗試給 /system 目錄增加寫權(quán)限
su
mount
在mount結(jié)果中找到包含/system的一行,類似如下:
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,seclabel,relatime,data=ordered 0 0
去處/system前半行,即/dev/block/platform/msm_sdcc.1/by-name/system,執(zhí)行如下命令:
mount -o remount /dev/block/platform/msm_sdcc.1/by-name/system /system
這個(gè)時(shí)候/system就擁有寫權(quán)限了,繼續(xù)執(zhí)行:
cat /sdcard/tcpdump > /system/bin/tcpdump
chmod 777 /system/bin/tcpdump
到此為止,tcpdump就成功安裝到了/system/bin/目錄下,接著用如下命令還是抓包
二、使用tcpdump抓包
tcpdump -i wlan0 -s 0 -w /sdcard/1.pcap
可以結(jié)束時(shí)使用Ctrl+c快捷鍵讓tcpdump結(jié)束抓包,抓到數(shù)據(jù)會(huì)存到/sdcard/1.pcap文件內(nèi)
重新打開一個(gè)終端(Terminal),執(zhí)行如下命令
adb pull /sdcard/1.pcap .
1.pcap文件被下載到了終端上的當(dāng)前目錄下
三、安裝Wireshark并分析pcap文件
從Wireshark官網(wǎng)https://www.wireshark.org/下 載適合你系統(tǒng)的Wireshark,然后點(diǎn)擊你下載后的Wireshark安裝包安裝好Wireshark,找到剛剛下載好的1.pcap文件,雙擊 1.pcap文件,1.pcap文件會(huì)自動(dòng)被Wireshark打開。在Wireshark的Filter內(nèi)輸入如下一些過(guò)濾條件,可以更加方便地分析數(shù) 據(jù)來(lái)源。
tcp.port == 80 //過(guò)濾來(lái)自80端口的TCP數(shù)據(jù)
udp.port == 12345 //過(guò)濾來(lái)自12345端口的UDP數(shù)據(jù)
ip.src == 192.168.0.1 //過(guò)濾源IP為192.168.0.1的數(shù)據(jù)
ip.dst == 192.168.0.1 //過(guò)目的IP為192.168.0.1的數(shù)據(jù)
以上過(guò)濾條件可以用and跟or相互組合,例如
tcp.port == 80 and ip.src == 192.168.0.1 //過(guò)濾來(lái)自80端口,源IP為192.168.0.1的TCP數(shù)
udp.port == 12345 or ip.dst == 192.168.0.1 //過(guò)濾來(lái)自12345端口的UDP數(shù)據(jù),或者目的IP為192.168.0.1的數(shù)據(jù)
相關(guān)文章
Android實(shí)現(xiàn)自定義View控件的流程詳解
這篇文章主要為大家詳細(xì)介紹了Android中實(shí)現(xiàn)自定義View控件的流程,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下2023-06-06Android實(shí)現(xiàn)登錄注冊(cè)頁(yè)面(上)
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)登錄注冊(cè)頁(yè)面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04Android自定義實(shí)現(xiàn)頂部粘性下拉刷新效果
這篇文章主要為大家詳細(xì)介紹了Android自定義實(shí)現(xiàn)頂部粘性下拉刷新效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10Android使用RecyclerView實(shí)現(xiàn)投票系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Android使用RecyclerView實(shí)現(xiàn)投票系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11Android之側(cè)滑菜單DrawerLayout的使用介紹
本篇文章主要介紹了Android之側(cè)滑菜單DrawerLayout的使用介紹,可以生成通過(guò)在屏幕上水平滑動(dòng)打開或者關(guān)閉菜單,能給用戶一個(gè)不錯(cuò)的體驗(yàn)效果2017-02-02Android中使用AndroidTestCase的方法實(shí)例
這篇文章主要介紹了Android中使用AndroidTestCase的方法實(shí)例,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-04-04Android設(shè)備之間通過(guò)Wifi通信的示例代碼
本篇文章主要介紹了Android設(shè)備之間通過(guò)Wifi通信的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01Flutter 構(gòu)建一個(gè)常用的頁(yè)面框架
大多數(shù) App 中都會(huì)有底部導(dǎo)航欄,通過(guò)底部導(dǎo)航欄切換實(shí)現(xiàn)不同頁(yè)面之間的切換。在Flutter 中提供了 BottomNavigationBar組件實(shí)現(xiàn)底部導(dǎo)航。本篇介紹通過(guò) BottomNavigationBar和 IndexedStack構(gòu)建最為常見的 App 頁(yè)面框架。2021-05-05