2016-09-28 83 views
0

首先感謝我的英語。使用Wireshark從手機捕獲數據包

我需要捕獲的數據包從我的Android應用程序將web服務,如果它真的是加密的。

要做到這一點,我打開我的手機的WiFi熱點。

之後,我連接我的電腦到那個wifi能夠使用wireshark觀察網絡。

然後我運行了Wireshark程序並開始觀察那個wifi網絡。

我期待看到HTTP協議報文時,我送HTTPS POST requets從我的Android應用程序。

但我看不到。相反,我看到一些TCP和QUIC協議數據包。實際上QUIC數據包的字段中寫着「Encrypted」,這是我想看到的,但據我所知它是UDP數據包,我不知道爲什麼還有大量的UDP數據包,我認爲它們不是我所需要的(但不是當然)。

其實有時候我有HTTP數據包,但主機是ssw.live.com。但是我的目標主機實際上是不同的。所以這不是我想要捕捉的。

以下是我的HTTP請求

HttpsURLConnection urlConnection = setUpHttpsConnection(url.toString()); 

    try { 
     urlConnection.setRequestMethod("POST"); 
    } catch (ProtocolException e) { 
     e.printStackTrace(); 
    } 
    urlConnection.setRequestProperty("Content-Type", "text/plain; charset=utf-8"); 

    urlConnection.setHostnameVerifier(new HostnameVerifier() { 

     @Override 
     public boolean verify(String s, SSLSession sslSession) { 
      HostnameVerifier hv = 
        HttpsURLConnection.getDefaultHostnameVerifier(); 
      return hv.verify("my.hostname.com.tr", sslSession); 
     } 

    }); 

以下是截圖後,我發送HTTP POST請求。只有一個HTTP數據包,它不相關。

enter image description here

內部的HTTP分組;

enter image description here

主機名是不同的。

我還試圖打開我的電腦在一些網站上看到,如果我能捕捉我的電腦的數據包,但有時當我打開一些網站預計不會發送HTTP協議的數據包。

我想知道那些我寫的東西有沒有不合理的地方。

是否有可能使用這種方式從我的手機中捕獲數據包?

如果是這樣,爲什麼我看不到它們?

任何想法,將不勝感激。提前致謝。

回答

0

我假設web服務託管在互聯網上的某個web服務器上。手機上的應用程序將通過手機的移動數據網絡訪問網絡服務。你的電腦沒有看到這個流量。它只能看到通過WiFi熱點網絡發送的流量。因此Wireshark無法捕獲它。

你可以嘗試在你的電腦上的Android模擬器上運行應用程序。 Android模擬器將使用您的PC的網絡連接與Web服務進行通信。那麼你應該能夠捕捉到這個網絡流量。

或在您的手機上安裝tcpdump

+0

其實我注意到還有TLS數據包。每次我發送HTTPS POST請求時,都會收到這些TLS數據包。他們不是我想要的嗎?它們也被加密。 – Hilal

相關問題