2009-02-12 22 views
4

我正在寻找比Wireshark更好的工具。 Wireshark的问题在于它没有格式化数据层(这是我正在查看的唯一部分),以便比较不同的数据包并尝试理解第三方编码(这是封闭源代码)。解密编码:数据包分析工具

具体来说,有什么好的工具查看数据,而不是TCP/UDP头信息?特别是一种格式化数据以进行比较的工具。

要非常具体:我想要一个程序比较多个(不只是2)在十六进制文件。

+0

什么平台/操作系统? Linux,win32,OSX? – 2009-03-04 18:22:55

+0

Windows平台 – Zombies 2009-03-06 20:15:49

回答

3

坦率地说,你最好打赌是推出自己的。

获取您熟悉的脚本语言并开始解决问题。首先写出一个简单的多路比较,但只要你开始发现你认为重要的模式(或者你认为可能是的),回去并将它们添加到代码中 - 从输出中消除它们,突出显示它们,翻译它们换成另一种表示法,用它们的“含义”或对其作用的某种高级描述来替换它们 - 无论似乎是合适的。如果您无法做出决定,请将其作为选项。

您正在寻找可视化软件,因为您需要一些东西来帮助您形成和内化对其编码的理解。但是你要做的比较只是你将要使用的过程的一部分(这本质上就是科学方法) - 你也将会形成和修正对包的各个部分是什么意思的猜测,它们是如何相互作用的等

没有预建的工具可以帮助你,但一个好的脚本语言(比如python,ruby,甚至perl)会有很大的帮助。当你形成一个理论,编码并试用。将你的代码捆绑在一起,随着你的想法尝试不同的想法,并随着你的需要建立一套针对这个问题的技巧。

- MarkusQ

P.S.不要陷入尝试使用C或Java或其他东西来做到这一点的陷阱。你将会玩得很快而且松散,并且应该有一个不需要变量声明和编译等的工具。一旦你了解了它的工作原理,将会有很多机会将它收紧并重写它

+0

是的,我正在考虑这些方面。 – Zombies 2009-03-10 19:36:07

0

问题是应用程序层的数据不是标准的(很少有例外,如HTTP,POP3等)。像Wireshark这样的工具不能解码这个信息,如果他们不知道格式。

我知道一些旧版本的Ethereal(现在是Wireshark)有选项(你可能必须启用它)才能显示有效载荷。预计它没有意义,大多数协议都是二进制的!

+0

我打算尝试自己解码它,并需要工具来帮助我将其可视化并进行比较。 – Zombies 2009-02-12 14:46:22

1

对于HTTP而言,我曾经使用过称为Effetech的很棒的工具。
(尽管现在看起来它们似乎支持的不仅仅是HTTP ......)

0

如果你有一个捕捉你已经完成了空灵,你可以读取捕获,或者你可以用tcpdump做你的捕获。要捕获使用tcpdump命令,如tcpdump -s 0 -qn -Xtcpdump -X -r filename将读取一个捕获。

22:08:33.513650 IP 192.168.32.10.40583 > 69.59.196.211.80: tcp 1261 
0x0000: 4500 0521 18ec 4000 4006 322a c0a8 200a [email protected]@.2*.... 
0x0010: 453b c4d3 9e87 0050 b0b6 4b4f 1598 0090 E;.....P..KO.... 
0x0020: 8018 1920 9b4f 0000 0101 080a 002e 701b .....O........p. 
0x0030: 093c bc38 4745 5420 2f75 7365 7273 2f32 .<.8GET./users/2 
0x0040: 3032 3637 2f7a 6f72 6564 6163 6865 2048 0267/zoredache.H 
0x0050: 5454 502f 312e 300d 0a48 6f73 743a 2073 TTP/1.0..Host:.s 
0x0060: 7461 636b 6f76 6572 666c 6f77 2e63 6f6d tackoverflow.com 

或者还有另一个tcpick这可能是你想要的。您可以捕获tcp连接的有效负载,并将其显示为十六进制或保存。

+0

是的,我现在看到的是比较多个转储的有效方法。我会认为像beyondcompare,但多个文件的东西会很棒。 – Zombies 2009-03-05 19:39:09

5

看看this blog post from BreakingPoint Labs。他们正在讨论手动协议逆向工程以及建立在PacketFu上的一组工具,以使这项任务更容易。

与您的问题相关的是一组工具,可以轻松识别和突出显示数据包的更改。下面是一个例子截图,显示了用色勾勒出数据包的区别: alt text http://www.breakingpointsystems.com/default/assets/Image/Blog%20Images/select_two_days.png

+0

哇,非常感谢你。 – Zombies 2009-03-10 19:35:15

2

你的问题是不是分析网络数据,但是当你通过你的需求描述比较二进制文件。

我会通过任何嗅探器,即借助于Zoreadche或Wireshark所描述的tcpdump(即通过遵循TCP会话)来提取应用程序数据。然后将其保存到文件并通过任何文件比较工具进行比较。你可以试试这些(最受欢迎的):

  • Examdiff Pro。真的很快比较目录。
  • Winmerge。虽然速度不如examdiff pro快,但它是开源的,而且正在迅速发展。这是我的第一选择。
  • Beyondcompare。这是我知道的唯一的文件比较工具,它完全符合您的要求,即同时比较try文件。