導航:首頁 > 程序命令 > android抓包命令詳解

android抓包命令詳解

發布時間:2023-02-14 13:29:09

㈠ 如何在 android 手機上實現抓包

使用 tPacketCapture,
無需 root,可以保存下 pcap 格式的流量捕獲,然後在電腦上打開分析。

它的原理是建立一個虛擬的 VPN 連接,
讓所有的流量都通過它。
因此它捕獲不到二層的信息,但這對於基本參考需求來說已經足夠了。

㈡ 如何在 Android 手機上實現抓包

官網沒有提供刷機軟體。由於刷機存在風險,如因自行刷機後導致的手機問題,還有可能會影響包修,因此我們不建議您自行刷機。

若手機因系統故障無法正常使用或自行刷機後導致手機出現問題,建議您將機器送到售後服務中心,由工程師幫助檢查處理。

㈢ 應用抓包之tcpmp命令抓包

原料
1.預抓包的App一個(我們以app抓包為例)
2.已配置android sdk
3.分析軟體Wireshark(Windows版)
4.抓包命令:tcpmp
5.模擬器或真機(以模擬器為例,真機需root)

首先我們先配置下環境變數
1.先來個ANDROID_HOME:SDK的路徑,類似於JAVA_HOME。(一勞永逸,以後安裝到別的路徑,改變一下HOME路徑就行)

2.把sdk路徑下的platfrom-tools和tools添加到環境變數

配置好就可以用adb命令了

1.執行tcpmp命令
tcpmp可以將網路中傳送的數據包完全截獲下來提供分析。

以上命令將截獲的數據包保存到sdcard,capture.pcap抓取是數據包,pcap為Wireshark分析文件的後綴。

這時抓包就開始了,在手機上刷新幾下要抓取數據的app。
抓完之後按ctrl+c停止抓包

2.將抓取的數據導出到電腦上(從sdcard導出到電腦上分析)
退出android shell環境(命令行輸入兩次exit),回到Windows環境。

接著執行

導出剛才抓到的文件到電腦d盤。(如果導出失敗,自己手動把抓包數據復制到電腦上)

或者通過DDMS導出到電腦

3.Wireshark打開剛才獲取到的.pcap文件
過濾出http

點擊某一個抓到的http包,可以查看它的詳細信息(自己判斷一下可能是哪個域名)

我們可以看到是get請求

復制出來去請求一下(右鍵->復制->值)

去瀏覽器中請求

再結合app,看看是哪個界面的內容
4.新建個文本文件,保存抓到的借口。例如:

看看請求出來ip地址,順著ip找出所有的api借口

54開頭的就是我要抓的app。

㈣ 如何在 Android 手機上實現抓包

千鋒扣丁學堂Android開發為您解答:
tcpmp是最快捷方便的抓包方式,還可以加深對網路協議的理解。android下可以通過如下方式抓包:

1 Android上啟動tcpmp

Android設備可以把tcpmp的可執行文件上傳到android設備上,然後通過mac遠程登錄android設備運行tcpmp,前提是這台android設備必須已經root過。步驟如下:

下載android版本的tcpmp為android系統編譯的tcpmp版本。

通過adb將tcpmp上傳到android設備

通過adb push將tcpmp文件上傳到特定的目錄,這里我們選擇/sdcard/data目錄。

在android設備上運行tcpmp

通過adb shell登陸設備,並執行tcpmp,最後一步執行./tcpmp即可。

2. 分析tcpmp輸出

經過上面的步驟成功運行tcpmp之後,接下來就可以分析輸出的網路包內容了,iOS設備和Android設備的輸出是一致的。我們先來解析下幾個基本的格式:

圖中紅色方框內的部分是一個ip包的詳細記錄,類似的紀錄還有好幾條。這里我們著重分析第一條的各部分欄位含義。

14:37:41.615018 很簡單,是該包接收到的時間。

17.143.164.37.5223 是發送方的ip地址及埠號(5223是埠號)。

10.29.44.140.58036 是我android的ip地址及埠號。

Flags [P.]
是tcp包header部分的第14個位元組的P位。這個位元組所包含的幾個flag很重要,後面我會單獨詳細講解。這里P位表示接受方需要馬上將包push到應用層。

seq 1:54
tcp包的seq號,1是起始值,54結束值。tcp之所以被認為是流,是因為tcp包所攜帶的每一個位元組都有標號(seq號)。1:54表明總共有54個位元組被接受,其中一個位元組是三次握手階段所使用,所以一共發送的長度是53位元組。

ack 101 tcp包的ack號,ack 101表明seq號為100的位元組已被確認收到,下一個期望接收的seq號從101開始。

win 255 win表示的是tcp包發送方,作為接受方還可以接受的位元組數。這里win
255表明ip為17.143.164.37的主機還可以接受255個位元組。

options [nop,nop,…] options[…]表示的是該tcp包的options區域,nop是no
opertion的縮寫,沒什麼實際用途,主要是用做padding,因為options區域按協議規定必須是4位元組的倍數。

options[… TS val 2381386761] ts
val這個值是tcp包的時間戳,不過這個時間戳和設備的系統時間沒啥關系,剛開始是隨機值,後面隨著系統時鍾自增長。這個時間戳主要用處是seq序列號越界從0重新開始後,可以確認包的順序。

options[… ecr 427050796] ts ecr這個值主要用來計算RTT。比如A發送一個tcp包給B,A會在包里帶上TS
val,B收到之後在ack包里再把這個值原樣返回,A收到B的ack包之後再根據本地時鍾就可以計算出RTT了。這個值只在ack包里有效,非ack包ecr的值就為0.

length 53 這個length是應用層傳過來的數據大小,不包括tcp的header。這個值和我們上面分析的seq 1:54是一致的。

以上就是一個基本的tcp包結構,大家可以按照上面的分析再把其他幾個包理解下。我們在做應用的時候面對的更多是http協議,但對一個http請求是怎麼通過tcp/ip分解成一個個的packet,然後怎麼在網路上穩定可靠的傳輸,要有個基本的印象。下面我們再看下tcpmp更多的功能,這些功能都是基於對tcp/ip協議的理解,遇到不理解的建議多google下相關的技術概念。

3. tcpmp知識拓展

再繼續深入tcpmp之前,先貼上一張tcp header格式圖,常看常新。

[https://github.com/music4kid/music4kid.github.io/blob/master/images/tcpheader.png?raw=true](https://github.com/music4kid/music4kid.github.io/blob/master/images/tcpheader.png?raw=true)"
width="1056">

3.1 TCP Flags(tcp header第十四個位元組)

我們再仔細看下上面提到的flags概念,flags位於tcp
header的第十四個位元組,包含8個比特位,也就是上圖的CWR到FIN。這8個比特位都有特定的功能用途,分別是:CWR,ECE,URG,ACK,PSH,RST,SYN,FIN。

CWR ,ECE 兩個flag是用來配合做congestion
control的,一般情況下和應用層關系不大。發送方的包ECE(ECN-Echo)為0的時候表示出現了congestion,接收方回的包里CWR(Congestion
Window Reced)為1表明收到congestion信息並做了處理。我們重點看其他六個flag。

URG
URG代表Urgent,表明包的優先順序高,需要優先傳送對方並處理。像我們平時使用terminal的時候經常ctrl+c來結束某個任務,這種命令產生的網路數據包就需要urgent。

ACK
也就是我們所熟悉的ack包,用來告訴對方上一個數據包已經成功收到。不過一般不會為了ack單獨發送一個包,都是在下一個要發送的packet里設置ack位,這屬於tcp的優化機制,參見delayed
ack。

PSH Push我們上面解釋過,接收方接收到P位的flag包需要馬上將包交給應用層處理,一般我們在http
request的最後一個包里都能看到P位被設置。

RST Reset位,表明packet的發送方馬上就要斷開當前連接了。在http請求結束的時候一般可以看到一個數據包設置了RST位。

SYN
SYN位在發送建立連接請求的時候會設置,我們所熟悉的tcp三次握手就是syn和ack位的配合:syn->syn+ack->ack。

FIN
Finish位設置了就表示發送方沒有更多的數據要發送了,之後就要單向關閉連接了,接收方一般會回一個ack包。接收方再同理發送一個FIN就可以雙向關閉連接了。

這8個flag首字母分別是:C E U A P R S F。初看難以記憶,我腦洞了下,把它們組合成 supr
cafe,當然少了super少了個e,我可以將就下。我們在使用tcpmp的時候會經常看到這幾個flag,[S],[P],[R],[F],[.]。其他幾個都好理解,[.]特殊點,是個佔位符,沒有其他flag被設置的時候就顯示這個佔位符,一般表示ack。

3.2 tcpmp 更多使用參數

這部分我們來看下tcpmp常用的一些命令參數。文章最開始部分的tcpmp命令是這樣的:sudo tcpmp -i rvi0 -AAl。
-i rvi0 -AAl都是屬於參數部分。常見的有這些:

-i, 要監聽的網卡名稱,-i rvi0監聽虛擬網卡。不設置的時候默認監聽所有網卡流量。

-A, 用ASCII碼展示所截取的流量,一般用於網頁或者app里http請求。-AA可以獲取更多的信息。

-X,用ASCII碼和hex來展示包的內容,和上面的-A比較像。-XX可以展示更多的信息(比如link layer的header)。

-n,不解析hostname,tcpmp會優先暫時主機的名字。-nn則不展示主機名和埠名(比如443埠會被展示成https)。

-s,截取的包位元組長度,默認情況下tcpmp會展示96位元組的長度,要獲取完整的長度可以用-s0或者-s1600。

-c,只截取指定數目的包,然後退出。

-v,展示更多的有用信息,還可以用-vv -vvv增加信息的展示量。

src,指明ip包的發送方地址。

dst,指明ip包的接收方地址。

port,指明tcp包發送方或者接收方的埠號。

and,or,not,操作法,字面意思。

上面幾個是我個人比較常用的,更多的參數可以參考這個詳細文檔。有興趣的可以分析下面幾個例子練習下:

tcpmp 『tcp[13] & 16!=0』

tcpmp src port 80 and tcp

tcpmp -vv src and not dst port 23

tcpmp -nnvvS src 192.0.1.100 and dst port 443

4. 用tcpmp分析http完整請求

說了這么多,我們再來實戰下,看一個完整的http請求流程。sudo tcpmp -i rvi0 -AAl src 60.28.215.123 or
dst 60.28.215.123

列出了6個前面的packet,10.29.44.240是我android的ip地址,60.28.215.123是知乎server的ip地址,紅色方框內是android發出的packet,白色方框內是server發出的packet。packet1是android三次握手的第一個syn包,packet2是server
ack+syn的包,packet3是android ack的包。這3個packet之後tcp的三次握手就完成了。

packet4是android發出的http
request。長度只有240個位元組,所以一個packet就發過去了,當然還設置了flags的P位,request需要馬上被應用層處理。包裡面出現了spdy,點贊。

packet5是server ack剛收到的包,長度位0,所以這僅僅是一個ack包。

packet6是server返回http的response了,1388個位元組。packet5和packet6都ack了seq為241的包,當然是為了增加ack的成功率。

中間還有好幾個packet就不仔細分析了,最後再看下請求完成的最後幾個包:

最後兩個packet比較簡單,android發送個FIN+ACK的包就斷開連接了,server直接發送了一個RST包後也斷開連接了。

㈤ 如何在 Android 手機上實現抓包

您好,希望以下回答能幫助您
電腦下載fiddler,開代理,手機連電腦代理上網,電腦端就可以抓包了。

如您還有疑問可繼續追問。

㈥ Android 配置Fiddler抓包

將瀏覽器的代理設置成Fiddler能夠實現Fiddler抓取瀏覽器的請求。同理,Android手機配置Fiddler作為代理伺服器,從而讓Fiddler能夠截獲Android的流量來實現抓包。

可以通過ipconfig命令等查看,最簡單的就是將滑鼠移到Fiddler窗口右上角的online字樣上面,會自動提示當前電腦IP地址。

比如,我當前PC IP地址為172.20.224.63

打開Fiddler上Tools-->Options,選擇Connections選項卡,可以查看到代理埠地址。默認為8888。你可以自行配置成其他埠號。

還有,請勾選「Allow remote computers to connect」(這是允許Android手機通過代理進行網路訪問)。

手機連接和PC位於同一區域網的wifi,連接成功後,進入到高級選項中。(不同手機有不同的進入方法,早期手機是長按已經連接上的wifi,現在有些手機直接提供了進入配置的箭頭按鈕。)
將代理伺服器主機名修改為第一步獲取的IP地址,埠號為第一步獲取的埠號。然後保存。

以上配置OK,打開手機進行網路訪問吧,看看Fiddler上有沒有HTTP請求包。

實際測試,如果發現沒有數據包,你需要檢查Fiddler是否打開,是否允許遠程電腦訪問,以及埠號和IP地址是否配置正確,然後重啟試試看(重啟Fidder、手機重連Wifi,重新配置等)。

以上配置的僅僅是抓取HTTP請求,對於HTTPS請求,你還是看不到。下面介紹下,HTTPS抓包配置。

HTTPS也是需要通過Fiddler代理來抓取的,所以呢,前面的配置代理的過程不變。下面介紹其他涉及到證書安裝方面的。

打開Tools->Options,選擇HTTPS選項卡,按照下圖進行勾選。

PC上安裝好了根證書之後,還需要在手機上安裝根證書,才能保證Fiddller能夠正確解析出HTTPS包。(原理是,手機通過Fiddler做了代理後,HTTPS請求進行握手時候獲取的證書就是Fiddler自己生成的證書,這個證書在手機上默認不受信任,這樣會導致手機端認為服務端非法從而斷開HTTPS握手,導致請求失敗。所以,我們需要讓手機信任Fiddler的根證書。)

手機在配置好HTTP代理後,打開瀏覽器,輸入: http://ipv4.fiddler:8888/ 。實際上 ipv4.fiddler 會引導到Fiddler所在PC的IP地址上。所以,你輸入http://<pc ip>:<port>也是可以的。(題外話, ipv4.fiddler 這個域名不是外網通用域名,你知道為啥會正確解析不?猜想是Fiddler自己提供了本地DNS解析服務)

OK,以上是所有的配置。

配置成功後,觀察Fiddler,手機進行一些操作,看看HTTPS的請求能解析不。如果你遇到下面的異常:

很大可能是由於手機上沒有安裝Fiddler的根證書。當然,還有例外,如果手機Android系統為7.0以上,即便安裝了Fiddler的根證書,也會出現這個異常。原因請參考 https://www.jianshu.com/p/0711ca1121e9

㈦ 如何通過使用fiddler對Android系統設備抓包總結

1. 通過fiddler抓包真機
好處是安卓手機不用root,簡單設置代理,並可以在電腦端檢測抓包數據。只能抓獲wifi,不同抓包3g/2g運營商的數據
2. 通過tcpudmp工具抓包
可以檢測真機,也可以模擬器。可以wifi,也可以3g/2g
必須root,可以安裝在手機內,然後電腦端開啟檢測或者停止檢測,抓到的數據包*.cab再拷貝到電腦,通過用Wireshark分析數據包。

㈧ 如何用Fiddler對Android應用進行抓包

用Fiddler對Android應用進行抓包的方法:

1、啟動Fiddler,打開菜單欄中的 Tools > Fiddler Options,打開「Fiddler Options」對話框。

㈨ 如何在 Android 手機上實現抓包

先給手機刷root許可權,執行命令:adbrootadbremountok後:把tcpmp放到c盤根目錄下:C:\2.執行命令:adbpushc:/tcpmp/data/local/tcpmp(這個命令是把tcpmp拷到手機中去)3.adbshellchmod6755/data/local/tcpmp是給tcp分配許可權4.adbshell/data/local/tcpmp-p-vv-s0-w/sdcard/capture.pcap輸入這個命令就等於啟動了抓包工具5.要停止抓包就Ctrl+C6.sdcard的capture.pcap復制出來到電腦上用wireshark打開即可以後每次抓包只要重復第4、5、6步就ok了

閱讀全文

與android抓包命令詳解相關的資料

熱點內容
linux安裝離線gcc 瀏覽:209
解壓縮英文版 瀏覽:580
麻將機命令 瀏覽:868
軟體安全與編譯器體系結構書籍 瀏覽:915
壓縮空氣釋放的風速變化 瀏覽:85
linuxjdk安裝路徑rpm 瀏覽:256
簡歷上的程序員面試 瀏覽:629
linuxcurl參數 瀏覽:772
編輯貓少兒編程靠譜嗎 瀏覽:840
阿里java編程規范 瀏覽:158
哪個網有編程課 瀏覽:402
程序員初學者如何自學編程 瀏覽:406
手機在線解壓縮 瀏覽:136
編譯器分配不可用地址 瀏覽:358
內網郵件伺服器是什麼 瀏覽:139
u盤加密電腦不認識了 瀏覽:402
壓縮機粗管是迴流管 瀏覽:280
javastring逗號 瀏覽:283
程序員寫什麼類型代碼 瀏覽:372
怎麼和俄羅斯人交朋友app 瀏覽:537