Encoding 解密编码:数据包分析工具

Encoding 解密编码:数据包分析工具,encoding,packet-capture,packet-sniffers,encryption,Encoding,Packet Capture,Packet Sniffers,Encryption,我正在寻找比Wireshark更好的工具。Wireshark的问题是,它没有清晰地格式化数据层(这是我正在查看的唯一部分),以便我比较不同的数据包并尝试理解第三方编码(这是封闭源代码) 具体来说,哪些是查看数据的好工具,而不是TCP/UDP头信息?特别是一种格式化数据以进行比较的工具 非常具体地说:我想要一个以十六进制比较多个(而不仅仅是2个)文件的程序。问题是应用层的数据不是标准的(除了极少数例外,如HTTP、POP3等)。像Wireshark这样的工具如果不知道这些信息的格式,就无法解码 我

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

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


非常具体地说:我想要一个以十六进制比较多个(而不仅仅是2个)文件的程序。

问题是应用层的数据不是标准的(除了极少数例外,如HTTP、POP3等)。像Wireshark这样的工具如果不知道这些信息的格式,就无法解码


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

坦率地说,你最好的选择就是自己动手

获得一种您熟悉的脚本语言,并着手解决这个问题。首先写一个简单的多路比较,但是一旦你开始发现你认为重要(或者你认为可能重要)的模式,就返回并将它们添加到代码中——从输出中删除它们,突出显示它们,将它们翻译成另一种符号,用它们的“含义”替换它们或者对他们的角色进行一些高层次的描述——任何看起来合适的描述。如果你不能决定,那就选择吧

您之所以要求使用可视化软件,是因为您需要一些东西来帮助您形成并内化对其编码的理解。但是,您将要进行的比较只是您将要使用的过程的一部分(本质上是科学方法)——您还将形成和修改关于数据包各个部分的含义、它们如何相互作用等的猜测

没有任何预构建的工具可以帮助您实现这一点,但是一种好的脚本语言(比如python、ruby甚至perl)将非常有帮助。当你形成一个理论时,把它编好代码,然后进行试验。咀嚼你的代码,在你想到不同的想法时尝试它们,在你前进的过程中建立一套针对这个问题定制的技巧

--马库斯克


注意,不要落入尝试使用C或Java或其他东西来实现这一点的陷阱。你会玩得又快又松,应该有一个不需要变量声明、编译等的工具。一旦你了解了它的工作原理,你将有很多机会将它收紧并重写它。

仅对于HTTP,我曾经使用过一个很棒的工具,名为。

(尽管现在看来他们支持的不仅仅是HTTP…)

如果您有一个使用ethereal完成的捕获,您可以阅读该捕获,也可以使用tcpdump完成捕获。要捕获,请使用tcpdump命令,如tcpdump-s0-qn-X,或者tcpdump-X-r文件名将读取捕获

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  E..!..@.@.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
22:08:33.513650 IP 192.168.32.10.40583>69.59.196.211.80:tcp 1261
0x0000:45000521 18ec 4000 4006 322a c0a8 200a E.。@。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。请查看。他们正在讨论手动协议反向工程和一套使这项任务更容易的工具

与您的问题相关的是一套工具,可以轻松识别和突出显示对数据包的更改。下面是一个示例屏幕截图,显示了使用颜色来概述数据包差异:

(来源:)

您的问题不是分析网络数据,而是根据需要比较二进制文件

我将通过任何嗅探器提取应用程序数据,即通过Zoreadche所述的tcpdump或Wireshark(即通过跟踪TCP会话)提取应用程序数据。然后将其保存到文件中,并通过任何文件比较工具进行比较。您可以尝试以下(最流行的):

  • 。非常快速地比较目录
  • 。虽然没有examdiff pro那么快,但它是开源的,并且发展很快。这是我的第一选择
  • 。这是我所知道的唯一一个文件比较工具,它完全符合您的要求,即同时比较try文件

我计划自己解码它,需要工具来帮助我可视化和比较。什么平台/操作系统?Linux、win32、OSX?是的,我现在看到的是一种比较多个转储的有效方法。我想像beyondcompare这样的东西,但是对于多个文件来说会很棒。我不知道为什么人们喜欢beyondcompare。几年前我试过,但很讨厌。Araxis merge确实更好/更酷。我还想为许多文件提供一个比较实用程序。曼尼档案。是的,我是这么想的。