2010-08-29 149 views
3

据我所知,每个数据包都有一些头部,看起来像是随机混合的字符。另一方面,内容本身可以是纯粹的,因此它可能是人性化的。我嗅探的一些数据包是可读的(当然,原始的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 [email protected] .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表明。但是,这完全没有价值的信息。我想解码数据/内容。

+0

你可否详细说明它是什么类型的包? Wireshark解释的头文件是什么(IP?TCP?UDP?HTTP?)?也许给一个包的完整例子? – brickner 2010-08-31 07:35:04

+0

@brickner它实际上是UDP,但由于我永远无法解码内容,所以它确实无关紧要。无论如何感谢 – 2010-08-31 07:49:06

回答

7

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

+1

+1因为'你必须研究构建它的程序':在所有可能性中,它将是一些自定义协议,然后最好的选择是做一些逆向工程...如果你在该领域没有经验:)虽然这个问题尖叫更多的信息 – 2010-08-30 07:51:25

+0

谢谢,但它看起来像死对我来说现在...没关系,我会想出另一种方式来解决这个问题。 – 2010-08-30 08:20:18

5

为什么不只是使用wireshark之​​类的东西?

+2

+1这是如何完成的。 – rook 2010-08-29 17:48:33

+0

因为我不想手动执行它,所以我需要在应用程序内解码它。另外,在我实现数据包嗅探器之前,我使用wireshark。顺便说一下,这就是我从中得到这个例子的地方。 – 2010-08-30 07:45:25

+0

你可以使用tshark(控制台版本的Wireshark) – Konstantin 2014-03-31 17:02:33

0

数据包标题将取决于发送有问题的数据包的应用程序,如前面的文章中所述。您也可以使用Wiresharks protocol reference来了解一些常用协议。

你在这里列出的是分组字节,你需要看到的是分组详细信息视图,以了解看似随机数据对应的内容。在“数据包详细信息”视图中,选择数据包的各个部分时,它将突出显示“数据包字节”视图中的相应字节。

+0

再一次,我不关心标题,这是毫无价值的信息。我需要解码UPD内容。 – 2010-08-30 08:18:52

0

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

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

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

  • 以太网帧头
  • IP报头
  • UDP报头
的信息

您的数据之前,所有传入的数据是二进制格式,直到您解析它为有意义的。