![如何知道数据传输中使用了哪种协议并检查该数据?](https://linux22.com/image/1239634/%E5%A6%82%E4%BD%95%E7%9F%A5%E9%81%93%E6%95%B0%E6%8D%AE%E4%BC%A0%E8%BE%93%E4%B8%AD%E4%BD%BF%E7%94%A8%E4%BA%86%E5%93%AA%E7%A7%8D%E5%8D%8F%E8%AE%AE%E5%B9%B6%E6%A3%80%E6%9F%A5%E8%AF%A5%E6%95%B0%E6%8D%AE%EF%BC%9F.png)
我有一个适用于 Windows 的 .net 应用程序。此应用程序通过固定端口号 8888 与特定服务器之间传输大量数据。我尝试了“Tcpview”,但没能找出任何有用的信息。我只知道它使用“tcp”连接。
有没有办法知道数据传输使用哪种协议(我认为端口号 8888没有指定端口,所以没有帮助)?我的机器究竟是如何连接到该服务器的?是 telnet/http 等还是其他?
我如何检查正在传输的实际数据?
如果数据被加密,是否有可能在客户端知道加密方法(无需逆向工程)?
谢谢。
答案1
Wireshark可能有助于回答问题 1 和 2。您可以将 Wireshark 设置为过滤掉除 TCP 端口 8888 之外的任何内容。然后只需选择其中一个数据包,Wireshark 就会将其分解为各种协议层(假设它识别这些协议)。如果您在应用程序之前启动 Wireshark,那么您应该能够看到应用程序生成的任何设置活动。
您还将能够检查有效载荷数据(再次假设 Wireshark 能够解码包含有效载荷的特定协议)。