成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用網絡流量分析工具更好調試Android應用

譯文
移動開發 Android
在Android應用開發中,網絡流量的監測是十分重要的一個環節。在本文中,將指導開發者在開發者在開發android應用時,如何監視所有跟網絡相關的流量(流出或流入),這將對提供android應用的性能有十分明顯的效果,尤其是當應用為跟互聯網相關時。

【51CTO獨家譯文】作為開發者,我們都很清楚,我們開發的跟網絡相關的程序,一般都會通過使用HTTP協議,發出相關的請求信息。當在應用運行之初時,這些網絡上的信息的傳遞是十分暢順的,我們獲得的信息都是我們期望所獲得的。

然而,開發者會發現經常都不會出現上面說的情況,尤其是在應用連接在網絡中的時候,特別是當高并發流量時,如果出現了數據的丟失或錯誤,沒人準確知道當前已發送和接受的數據是什么,這樣對我們的程序調試是很不利的。這就要求我們必須能夠抓取網絡中的相關包數據,對數據進行解包分析驗證。

前言

對網絡中的數據包進行抓取為稍后的分析是很有用的,但如果我們在抓取數據包的同時就能夠開展這種分析那將獲得更好的效果。這樣做的話,開發者能很清晰了解到對每一個測試用例中的請求和應答的數據是哪些。在本文中,將展示如何實時地抓取Android應用聯網程序中的數據包,并且將使用著名的網絡數據分析利器Wireshark進行分析。

教程詳情

  • 技術:Android+Wireshark
  • 難度:中等
  • 完成時間:30-45分鐘

步驟1安裝tcpdump軟件

首先必須在設備上安裝tcpdump軟件。Tcpdump是一款命令行下的網絡數據抓包工具,并能將抓取的數據存放到文件系統中,可以在這個地址下載:http://www.tcpdump.org/

當下載完tcpdump文件后,我們需要做的只需要使用adb命令去將其放到設備中去。首先當然要將手機連接到電腦上,使用的命令如下:

 adbdevices

 這樣就會列出當前已連接到電腦上的設備。再用如下命令將tcpdump文件push到設備中去,如下命令:

adb push /home/tcpdump   /data/local

在接下來的幾個步驟中,必須要使用root的權限進行操作,并且要使的tcpdump為可執行屬性,如下:

adb shell

cd data/local

su

chmod 777 tcpdump

步驟2保存抓包數據到文件

我們可以在adbshell中啟動tcpdmup,命令如下:

 /tcpdump-s0-v-wout.pcap

 完整的tcpdump的命令參數請參考這個地址:http://www.tcpdump.org/tcpdump_man.html

運行后如下圖所示:

可以看到,tcpdump會監控當前網卡的數據包情況,當用戶想停止監控時,只需要CTRL+C即可停止監控了,并使用pull將其保存到文件系統中去,以方便使用Wireshark去進行分析,命令如下:

 adb pull/data/local/out.pcap/home/out.pcap

 

保存在本地文件系統中的數據將稍后使用Wireshark進行分析。

步驟3捕捉指定端口的數據

接下來,我們更改下tcpdump的輸出格式,將其輸出不輸出到文件,而輸出到指定的輸出端口中,以方便使用netcat這個工具去過濾數據,這個工具等下會講解到。命令如下:

  adb shell "./data/local/tcpdump -n -s 0 -w - | nc -l -p 12345"

這樣的話,所有的網絡流量數據包將會經過12345端口。

步驟4安裝netcat

首先在http://www.securityfocus.com/tools/139這個地址下載windows版本的netcat進行安裝,這個工具的原理是:,從網絡的一端讀入數據,然后輸出到網絡的另一端,它可以使用tcp和udp協議.

步驟5使用Wireshark分析網絡數據包

下面我們開始使用Wireshark分析網絡數據包。首先使用adb的forward指令,將數據包從手機設備的12345端口重定向到PC電腦的54321端口,然后再通過netstat工具捕獲進入54321端口的數據,最后再通過管道操作交給wireshark進行分析,命令如下:

  adb forward tcp:12345 tcp:54321 && nc 127.0.0.1 54321 | wireshark -k -S -i -

要注意的是,例子中端口的選擇是隨機的。之所以選擇不同的端口,其原因為了展示不同的命令之間的相互調用,相同的命令可以調用同一個端口,只要這些端口是未被占用的即可。

運行后入下圖所示,可以看到wireshark的運行情況:

綜合的操作

現在,在不同的工具搭建完畢后,我們可以通過在兩個不同的終端,分別使用兩條不同的命令,來完成從捕捉數據包到整個數據包分析的過程,命令如下:

adb shell "./data/local/tcpdump -n -s 0 -w - | nc -l -p 12345"
adb forward tcp:12345 tcp:54321 && nc 127.0.0.1 54321 | wireshark -k -S -i -

但這個操作有點麻煩,要打開兩個終端進行操作,因此在windows下,可以用本文的附件中的如下腳本,實現一條語句運行:

 start adb shell "./data/local/tcpdump -n -s 0 -w - | nc -l -p 12345"
adb forward tcp:12345 tcp:54321 && nc 127.0.0.1 54321 | wireshark -k -S -i -

如下圖,可以看到只打開了一個終端窗口。

Mac用戶請注意

如果你是MAC機用戶,則請需要注意如下幾點:

使用完整的路徑調用,比如“/Applications/Wireshark.app/Contents/Resources/bin/wireshark”去調用

2)此外,在命令行下調用時,要按入下格式調用:

  adb forward tcp:12345 tcp:54321 && nc 127.0.0.1 54321 | sudo wireshark -k -S -i 2

其中,要使用sudo授予wireshark管理員權限,并且注意最后的參數為2,最后給出一段perl的script,在本文附件中可以下載,用來完成整個在MAC機器上捕獲數據包并交給wireshark分析的過程:

  1. #!/usr/bin/perl 
  2. # Perform adb command on shell 
  3. # to check if the device is attached 
  4. $netstat = `adb shell 'netstat' 2>&1`; 
  5. if($netstat =~ m/error: device not found/) 
  6. die("Plug in your phone!\n"); 
  7. # Gain root priviledges 
  8. open(SUDO, "|sudo echo ''"); 
  9. close(SUDO); 
  10. # Redirect STDERR output to STDOUT 
  11. open STDERR, '>&STDOUT'; 
  12. # Perform tcpdump and nc in background 
  13. open(COMMAND1, "(adb shell \"data/local/tcpdump -n -s 0 -w - | nc -l -p 12345\") |"); 
  14. # Perform piping to wireshark 
  15. open(COMMAND2, "((adb forward tcp:12345 tcp:54321 && nc 127.0.0.1 54321 | sudo wireshark -k -S -i 2) &) 2>&1 > /dev/null |"); 
  16. # Make sure the exit message appears after wireshark has been launched (hacky) 
  17. sleep(5); 
  18. print("Press ctrl-c to exit..."); 
  19. <STDIN>

本文的附件在這里可以下載:https://mobiletuts.s3.amazonaws.com/Android-SDK_Wireshark_Traffic-Analysis/tcpdump_scripts.zip

【51CTO譯稿,非經授權謝絕轉載,合作媒體轉載請注明原文出處、作者及51CTO譯者!】

責任編輯:佚名 來源: 51CTO.com
相關推薦

2011-04-06 11:36:28

MRTG流量

2016-01-14 11:40:13

2012-09-07 11:19:21

SNMPNetFlow虛擬網絡

2019-07-26 11:13:53

2015-07-28 15:58:26

2011-04-20 10:51:56

網絡流量分析工具網絡監測

2010-06-01 10:45:02

Mrtg 安裝

2011-10-13 17:06:44

SonicWALL應用流量

2024-11-18 16:32:33

2020-05-22 17:40:34

網絡流量

2023-08-03 10:29:41

2022-04-14 08:21:48

微服務項目多模塊

2013-06-03 10:24:30

2011-03-31 09:47:21

CACTI流量監控

2015-10-15 13:50:17

網絡流量分析東華網智

2011-04-06 10:57:14

監控MRTG

2018-09-28 09:00:00

LinuxTCPflow網絡流量

2009-09-08 22:52:30

網絡流量管理

2010-08-18 09:58:57

網絡流量

2010-06-13 14:47:15

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日韩黄色一级片 | 日本视频在线播放 | 一级黄色片网址 | 欧美精品a∨在线观看不卡 国产精品久久国产精品 | 免费在线一区二区 | 国产ts人妖系列高潮 | 国产在线中文字幕 | 国产日韩91 | 免费观看的av毛片的网站 | 日韩精品中文字幕一区二区三区 | 国产高清在线观看 | 久久久久国产视频 | av在线一区二区三区 | 欧美中文字幕在线观看 | 日日艹夜夜艹 | 亚洲免费高清 | 一区精品在线观看 | 国产激情视频在线 | 久国产视频| 久久成人综合 | 国产精品免费高清 | 久久精品国产免费一区二区三区 | 欧美日韩三区 | 久久久蜜臀国产一区二区 | 国产精品成人一区二区三区夜夜夜 | 在线国产中文字幕 | 国产91在线 | 欧美 | 一级大片 | www..99re| 青春草国产 | 亚洲精选一区二区 | 亚洲二区精品 | 日韩高清av | 欧美日韩久久 | 精品免费视频 | 亚洲欧美综合网 | 日韩电影中文字幕在线观看 | 午夜精品在线观看 | 欧美日在线 | 久久一二| 在线综合视频 |