1. 程式人生 > >Android網路資料包的抓和分析

Android網路資料包的抓和分析

1. 手機獲得root許可權;

2. push tcpdump到 /;

3. chmod 755 tcpdump;

4. 抓包:

adb shell tcpdump -s 0 -w /sdcard/capture.pcap

5. pull資料包到pc,使用wireshark檢視資料包 。

tcpdump [-Apn] [ -c count ]  [ -i interface ] [ -s snaplen ] [ -w file ] [ expression ] 

# "-p": disable promiscuous mode

# "-s 0": capture the entire packet,從每個 報文 中 擷取 snaplen 位元組的資料,預設情況下68 個位元組適用於IP, ICMP, TCP和UDP, 但是有可能截掉一些資訊,應該把snaplen設的儘量小, 只要能夠容納你需要的協議資訊就可以了。.

#"-A": Print each packet (minus its link level header) in ASCII.  Handy for capturing web pages.

#"-n": Don't convert addresses (i.e., host addresses, port numbers, etc.) to names.

expression

第一種是關於型別的關鍵字,包括host,net,port,分別表示主機地址,網路地址,和埠號。

例如 host 210.27.48.2,指明主機是210.27.48.2,net 202.0.0.0 指明網路地址是202.0.0.0 ,port 80 指明埠是80.


第二種是關於傳輸方向的關鍵字,包括src,dst,dst or src,dst and src。

例如 src 210.27.48.2,指明源地址是210.27.48.2,dst net 202.0.0.0 指明目的網路地址是202.0.0.0 。

第三種是協議的關鍵字,包括ip,tcp,udp等型別。如果沒有指定任何協議,則tcpdump將會監聽所有協議的資訊包。

三種邏輯運算,取非運算是 'not'  '!',與運算是'and' 或 '&&',或運算子是'or' 或 '││'。

使用範例:

1。截獲本機所有收到的和發出的所有的資料包:
tcpdump -i eth0 -s 0 -w nwk-log.pcap

2。截獲本機埠80接收或發出的tcp資料包:

#tcpdump  -i eth0 -s 0 -w nwk-log.pcap tcp port 80


2。截獲本機和兩個伺服器的資料包:
tcpdump -i eth0 -s 0 -w nwk-log.pcap host \ (210.27.48.2 or 210.27.48.3 \) 


3。截獲本機和兩個伺服器的HTTP資料包,翻譯過來就是:source是兩個伺服器地址的資料包,或者通過TCP埠80或者8080,且目的地址是伺服器地址的資料包:
tcpdump -i eth0 -s 0 -w nwk-log.pcap src host \(119.75.218.77 or 61.135.169.125\) or \(tcp dst port \(80 or 8080\) and dst host \(119.75.218.77 or 61.135.169.125\)\)