2016-09-28 78 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

相关问题