3

我知道每个数据包都有一些看起来像是随机混合的字符的标头。另一方面,内容本身可以是纯 ascii,因此它可能对人类友好。我嗅到的一些数据包是可读的(当然是原始的 html 标头)。但有些数据包看起来像这样:

0000  00 15 af 51 68 b2 00 e0  98 be cf d6 08 00 45 00   ...Qh... ......E.
0010  05 dc 90 39 40 00 2e 06  99 72 08 13 f0 49 c0 a8   ...9@... .r...I..
0020  64 6b 00 50 c1 32 02 7a  60 4f 4c b6 45 62 50 10   dk.P.2.z `OL.EbP.

这只是一部分,这些数据包通常更长。我的问题是,如何解码数据包内容/数据?我需要整个流吗?解码是否简单,或者每个应用程序都可以对其稍作编码,以确保这些数据包的安全?

编辑:我不在乎标题,Wireshark 表明了这一点。然而,这完全是毫无价值的信息。我想解码数据/内容。

4

4 回答 4

8

数据包的内容由发送它的进程定义。把它想象成一个电话。所说的内容取决于谁在打电话以及他们在与谁交谈。您必须研究构建它的程序以确定如何“解码”它。有一些嗅探器会解析一些常用的编码方法并尝试这样做。

于 2010-08-29T17:39:18.753 回答
5

为什么不直接使用wireshark之​​类的东西呢?

于 2010-08-29T17:39:49.347 回答
0

如前一篇文章所述,数据包标头将取决于发送相关数据包的应用程序。您还可以使用 Wiresharks协议参考来了解一些常用协议。

您在这里列出的是 Packet Byte,您需要查看的是 Packet Detail 视图,以了解看似随机的数据对应的是什么。在 Packet Detail 视图中,当您选择数据包的各个部分时,它将在 Packet Byte 视图中突出显示相应的字节。

于 2010-08-30T06:23:47.600 回答
0

如果您使用 C#,请获取 SharpPcap 并查看代码中的示例以了解其工作原理。

将过滤器设置为仅捕获 UDP,捕获数据包,将其解析为 udp,然后提取有效负载。有效负载的格式基于发送它的应用程序。

有很多额外的乱码,因为每个 udp 数据包都包含一堆:

  • 以太网头
  • IP头
  • UDP报头

在您将数据解析为有意义的内容之前,您的数据和所有传入数据之前的信息都是二进制格式的。

于 2010-11-11T01:16:23.813 回答