日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
使用網(wǎng)絡(luò)流量分析工具更好調(diào)試Android應(yīng)用

【獨(dú)家譯文】作為開(kāi)發(fā)者,我們都很清楚,我們開(kāi)發(fā)的跟網(wǎng)絡(luò)相關(guān)的程序,一般都會(huì)通過(guò)使用HTTP協(xié)議,發(fā)出相關(guān)的請(qǐng)求信息。當(dāng)在應(yīng)用運(yùn)行之初時(shí),這些網(wǎng)絡(luò)上的信息的傳遞是十分暢順的,我們獲得的信息都是我們期望所獲得的。

成都一家集口碑和實(shí)力的網(wǎng)站建設(shè)服務(wù)商,擁有專業(yè)的企業(yè)建站團(tuán)隊(duì)和靠譜的建站技術(shù),十余年企業(yè)及個(gè)人網(wǎng)站建設(shè)經(jīng)驗(yàn) ,為成都上1000+客戶提供網(wǎng)頁(yè)設(shè)計(jì)制作,網(wǎng)站開(kāi)發(fā),企業(yè)網(wǎng)站制作建設(shè)等服務(wù),包括成都營(yíng)銷型網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),同時(shí)也為不同行業(yè)的客戶提供網(wǎng)站制作、成都網(wǎng)站建設(shè)的服務(wù),包括成都電商型網(wǎng)站制作建設(shè),裝修行業(yè)網(wǎng)站制作建設(shè),傳統(tǒng)機(jī)械行業(yè)網(wǎng)站建設(shè),傳統(tǒng)農(nóng)業(yè)行業(yè)網(wǎng)站制作建設(shè)。在成都做網(wǎng)站,選網(wǎng)站制作建設(shè)服務(wù)商就選創(chuàng)新互聯(lián)。

然而,開(kāi)發(fā)者會(huì)發(fā)現(xiàn)經(jīng)常都不會(huì)出現(xiàn)上面說(shuō)的情況,尤其是在應(yīng)用連接在網(wǎng)絡(luò)中的時(shí)候,特別是當(dāng)高并發(fā)流量時(shí),如果出現(xiàn)了數(shù)據(jù)的丟失或錯(cuò)誤,沒(méi)人準(zhǔn)確知道當(dāng)前已發(fā)送和接受的數(shù)據(jù)是什么,這樣對(duì)我們的程序調(diào)試是很不利的。這就要求我們必須能夠抓取網(wǎng)絡(luò)中的相關(guān)包數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行解包分析驗(yàn)證。

前言

對(duì)網(wǎng)絡(luò)中的數(shù)據(jù)包進(jìn)行抓取為稍后的分析是很有用的,但如果我們?cè)谧ト?shù)據(jù)包的同時(shí)就能夠開(kāi)展這種分析那將獲得更好的效果。這樣做的話,開(kāi)發(fā)者能很清晰了解到對(duì)每一個(gè)測(cè)試用例中的請(qǐng)求和應(yīng)答的數(shù)據(jù)是哪些。在本文中,將展示如何實(shí)時(shí)地抓取Android應(yīng)用聯(lián)網(wǎng)程序中的數(shù)據(jù)包,并且將使用著名的網(wǎng)絡(luò)數(shù)據(jù)分析利器Wireshark進(jìn)行分析。

教程詳情

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

步驟1安裝tcpdump軟件

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

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

 adbdevices

 這樣就會(huì)列出當(dāng)前已連接到電腦上的設(shè)備。再用如下命令將tcpdump文件push到設(shè)備中去,如下命令:

adb push /home/tcpdump   /data/local

在接下來(lái)的幾個(gè)步驟中,必須要使用root的權(quán)限進(jìn)行操作,并且要使的tcpdump為可執(zhí)行屬性,如下:

adb shell

cd data/local

su

chmod 777 tcpdump

步驟2保存抓包數(shù)據(jù)到文件

我們可以在adbshell中啟動(dòng)tcpdmup,命令如下:

 /tcpdump-s0-v-wout.pcap

 完整的tcpdump的命令參數(shù)請(qǐng)參考這個(gè)地址:http://www.tcpdump.org/tcpdump_man.html

運(yùn)行后如下圖所示:

可以看到,tcpdump會(huì)監(jiān)控當(dāng)前網(wǎng)卡的數(shù)據(jù)包情況,當(dāng)用戶想停止監(jiān)控時(shí),只需要CTRL+C即可停止監(jiān)控了,并使用pull將其保存到文件系統(tǒng)中去,以方便使用Wireshark去進(jìn)行分析,命令如下:

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

保存在本地文件系統(tǒng)中的數(shù)據(jù)將稍后使用Wireshark進(jìn)行分析。

步驟3捕捉指定端口的數(shù)據(jù)

接下來(lái),我們更改下tcpdump的輸出格式,將其輸出不輸出到文件,而輸出到指定的輸出端口中,以方便使用netcat這個(gè)工具去過(guò)濾數(shù)據(jù),這個(gè)工具等下會(huì)講解到。命令如下:

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

這樣的話,所有的網(wǎng)絡(luò)流量數(shù)據(jù)包將會(huì)經(jīng)過(guò)12345端口。

步驟4安裝netcat

首先在http://www.securityfocus.com/tools/139這個(gè)地址下載windows版本的netcat進(jìn)行安裝,這個(gè)工具的原理是:,從網(wǎng)絡(luò)的一端讀入數(shù)據(jù),然后輸出到網(wǎng)絡(luò)的另一端,它可以使用tcp和udp協(xié)議.

步驟5使用Wireshark分析網(wǎng)絡(luò)數(shù)據(jù)包

下面我們開(kāi)始使用Wireshark分析網(wǎng)絡(luò)數(shù)據(jù)包。首先使用adb的forward指令,將數(shù)據(jù)包從手機(jī)設(shè)備的12345端口重定向到PC電腦的54321端口,然后再通過(guò)netstat工具捕獲進(jìn)入54321端口的數(shù)據(jù),最后再通過(guò)管道操作交給wireshark進(jìn)行分析,命令如下:

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

要注意的是,例子中端口的選擇是隨機(jī)的。之所以選擇不同的端口,其原因?yàn)榱苏故静煌拿钪g的相互調(diào)用,相同的命令可以調(diào)用同一個(gè)端口,只要這些端口是未被占用的即可。

運(yùn)行后入下圖所示,可以看到wireshark的運(yùn)行情況:

綜合的操作

現(xiàn)在,在不同的工具搭建完畢后,我們可以通過(guò)在兩個(gè)不同的終端,分別使用兩條不同的命令,來(lái)完成從捕捉數(shù)據(jù)包到整個(gè)數(shù)據(jù)包分析的過(guò)程,命令如下:

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 -

但這個(gè)操作有點(diǎn)麻煩,要打開(kāi)兩個(gè)終端進(jìn)行操作,因此在windows下,可以用本文的附件中的如下腳本,實(shí)現(xiàn)一條語(yǔ)句運(yùn)行:

 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 -

如下圖,可以看到只打開(kāi)了一個(gè)終端窗口。

Mac用戶請(qǐng)注意

如果你是MAC機(jī)用戶,則請(qǐng)需要注意如下幾點(diǎn):

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

2)此外,在命令行下調(diào)用時(shí),要按入下格式調(diào)用:

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

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

 
 
 
  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..."); 

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

【譯稿,非經(jīng)授權(quán)謝絕轉(zhuǎn)載,合作媒體轉(zhuǎn)載請(qǐng)注明原文出處、作者及譯者!】


當(dāng)前文章:使用網(wǎng)絡(luò)流量分析工具更好調(diào)試Android應(yīng)用
本文URL:http://www.5511xx.com/article/ccicdeh.html