使用Wireshark

时间:2016-09-28 11:56:36

标签: android sockets networking tcp wireshark

首先抱歉我的英语。

我需要捕获从我的android应用程序到webservice的数据包,如果它真的是加密的话。

要做到这一点,我打开了手机的 wifi热点。

之后,我将我的电脑连接到那个wifi ,以便能够使用wireshark观察该网络。

然后我运行了 Wireshark 程序并开始观察该无线网络。

当我从我的Android应用发送 HTTPS POST 请求时,我希望看到 HTTP 协议数据包。

但我看不出来。相反,我看到一些TCP和QUIC协议数据包。实际上,QUIC数据包的字段表示"加密"这是我想看到的,但我知道它是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协议数据包,而我期望打开一些网站。

我想知道我写的那些是不合理的东西。

是否有可能以这种方式捕获来自我的手机的数据包?

如果是这样,为什么我看不到它们?

任何想法都会受到赞赏。提前谢谢。

1 个答案:

答案 0 :(得分:0)

我认为网络服务托管在互联网上的某个网络服务器上。手机上的应用程序将通过您手机的移动数据网络访问网络服务。您的电脑没有看到此流量。它只能看到通过WiFi热点网络发送的流量。所以Wireshark无法捕获它。

您可以尝试在PC上的Android模拟器上运行该应用程序。 Android模拟器将使用您的PC网络连接与Web服务进行通信。然后,您应该能够捕获此网络流量。

或者在手机上安装tcpdump