1 Tcpdump工具使用
TcpDump可以將網路中傳送的資料包的“頭”完全截獲下來提供分析。它支援針對網路層、協議、主機、網路或連接埠的過濾,並提供and、or、not等邏輯語句來協助你去掉無用的資訊。
參見:http://baike.baidu.com/view/76504.htm?fr=ala0_1_1
該工具使用便捷,在linux上命令列執行即可進行抓包,尤其是在adroid手機上非常便捷。由於大部分android手機不帶tcpdump工具,首先需要將其拷貝到手機上,與網上的一些方法不一樣本文不講tcpdump執行檔案拷貝至system目錄下,因為system目錄啟動後預設都是ro屬性,拷入檔案還涉及到修改屬性(具體的android手機中修改掛載目錄讀寫屬性的方法可參見本部落格的http://blog.csdn.net/shuzui1985/article/details/7581803)
好了言歸正傳,首先確保你的手機已經root,這裡你不懂就上網找找吧,我就不解釋了。
Ø
adb push c:\wherever_you_put\tcpdump /data/local/tcpdump
Ø 修改檔案屬性
adb shell
su
chmod 6755 /data/local/tcpdump
Ø 命令列抓包
/data/local/tcpdump -p -vv -s 0 -w/sdcard/capture.pcap—這個路徑順便你寫哪
(如果出現tcpdump: no suitable device found。得保證你是在root許可權下操作)
Ø 抓包完畢以後^C,並且exit退出android bash
adb pull /sdcard/capture.pcap拷貝抓包結果至本地
Ø 使用wireshark開啟進行查看(不會用的同學可以直接搜尋)
2 Android程式內建調用tcpdump(轉載)
參見:http://blog.csdn.net/Zengyangtech/article/details/5853366
最近做一個Android連網抓包的工具
自己在網上搜尋了好久
發現還是沒有頭緒
於是考慮在linux層上下功夫
於是採用linux的tcpdump來實現了抓包的功能
用簡單的話來定義tcpdump,就是:dump the traffic on a network,根據使用者的定義對網路上的資料包進行截獲的包分析工具。
作為互連網上經典的的系統管理員必備工具,tcpdump以其強大的功能,靈活的截取策略,成為每個進階的系統管理員分析網路,排查問題等所必備的東東之一。
對於tcpdump詳細的可以參考http://baike.baidu.com/view/76504.htm?fr=ala0_1_1百度百科的介紹
我這裡主要介紹一下如何在Android上使用tcpdump
我所採用的測試機是破解版G2和模擬器
具體的就是在APK程式裡執行linux命令
[c-sharp]
view plaincopyprint?
- tcpdump -p -vv -s 0 -w /sdcard/capture.pcap
這樣就能夠將抓到的包在sdcard上寫一個capture.pcap檔案
而這個檔案可以用wireshark在PC上開啟進行查看 非常方便
具體的原始碼如下
MainHook.java
[c-sharp]
view plaincopyprint?
- package zy.hook;
- import java.io.IOException;
- import android.app.Activity;
- import android.os.Bundle;
- import android.util.Log;
- public class MainHook extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- try {
- //Runtime.getRuntime().exec("su");
- //Runtime.getRuntime().exec("dd if=/sdcard/tcpdump of=/data/local/tcpdump");
- //Runtime.getRuntime().exec("chmod 6755 /data/local/tcpdump");
- Runtime.getRuntime().exec("tcpdump -p -vv -s 0 -w /sdcard/capture.pcap");
- Log.i("run","success!!!!!!!!!");
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- Log.i("run",e.toString());
- }
- }
- }
AndroidManifest.xml
[xhtml]
view plaincopyprint?
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="zy.hook"
- android:versionCode="1"
- android:versionName="1.0">
- <application android:icon="@drawable/icon" android:label="@string/app_name">
- <activity android:name=".MainHook"
- android:label="@string/app_name">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- </application>
- <uses-sdk android:minSdkVersion="7" />
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
- </manifest>
尤其不要忘記了許可權<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
的聲明
運行程式我們就可以抓包了
會在sdcard上產生capture.pcap檔案
抓一段時間之後,將檔案從sdcard上匯出
然後我們用wireshark開啟
可以非常方便的查看我們抓到的包
希望能夠對大家有用
3 通過tcpdump/wireshark工具分析Android平台上現有的直播技術(轉載)
參見:http://blog.csdn.net/moruite/article/details/6095465
抓包工具TcpDump for Android + wireshark
如果要抓TCP資料包,我們可以使用TCPdump工具,類似於windows/linux下使用的這個工具一樣。具體方法是
下載tcpdump,還有個地址是http://www.strazzere.com/android/tcpdump。
詳細使用請參考http://www.tcpdump.org/裡面的文檔
你需要root許可權,
adb push c:\wherever_you_put\tcpdump /data/local/tcpdump
adb shell chmod 6755 /data/local/tcpdump
抓包很簡單
adb shell tcpdump -p -vv -s 0 -w /sdcard/capture.pcap
# “-p”: disable promiscuous mode (doesn’t work anyway)
# “-s 0″: capture the entire packet
# “-w”: write packets to a file (rather than printing to stdout)
… do whatever you want to capture, then ^C to stop it …匯出
adb pull /sdcard/capture.pcap
下載wireshark查看資料包,地址是http://www.wireshark.org/download.html,開啟這個資料包,就可以查看資料。
轉自 http://vcommon.growprogress.com/?p=1293通過tcpdump/wireshark工具分析Android平台上現有的直播技術
要解析Android手機上電視直播協議,可以通過工具抓包查看現有的直播應用,如鳳凰衛視,手機電視,主要的方法有:
1. 在Android 類比上安裝直播應用,通過wireshark工具抓包查看都是基於什麼協議,如RTSP/HTTP
優點:在windows下通過有介面的wireshark抓包工具較容易操作
缺點: Android模擬器資源有限,電視無法正常播放
wireshark工具的功能很多,常用的功能一般只是選取要抓包的網卡名並設定資料過濾器,1所示,點擊capture菜單下的Options,可以選擇內建的過濾器,如只抓取http協議包/TCP/UDP包等,然後點擊開始記錄資料:
圖1 wireshark抓包工具
2. 在Android手機上安裝tcpdump抓包工具,將log資訊儲存到sdcard上,比如抓取手機電視dopool應用的資料包:
./tcpdump -n -s 0 -w /sdcard/dopool.pcap (-n 表示是忽略dns協議,-s 0表示抓取協議包頭和協議具體資訊)
下面是幾個常見的Android平台下的電視直播協議分析
2.1 w.tv手機電視
2.2 鳳凰移動台
2.3 dopool手機電視
結論: w.tv和鳳凰衛視是基於RTSP/RTP協議實現的直播功能,dopool是基於TS流實現的直播