代码之家  ›  专栏  ›  技术社区  ›  Zombies

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

  •  4
  • Zombies  · 技术社区  · 16 年前

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

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

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

    6 回复  |  直到 16 年前
        1
  •  3
  •   MarkusQ    16 年前

    坦率地说,你最好的办法就是自己动手。

    获得一种你很熟悉的脚本语言,然后开始破解这个问题。首先写一个简单的多方式比较,但是一旦你开始发现你认为有意义的模式(或者你认为可能有意义的模式),就回去把它们添加到代码中——从输出中消除它们,突出它们,把它们转换成另一个符号,用它们的“含义”或者对它们角色的一些高级描述来替换它们——wh阿泰弗似乎很合适。如果你不能决定,就让它成为一个选项。

    您要求使用可视化软件,因为您需要一些东西来帮助您形成和内部化对其编码的理解。但是你将要进行的比较只是你将要使用的过程的一部分(这本质上是一种科学方法),你还将形成和修改关于包的各个部分意味着什么、它们是如何交互的猜测,等等。

    没有预先构建的工具可以帮助您,但是一种好的脚本语言(比如python、ruby,甚至perl)会有很大帮助。当你形成一个理论的时候,把它编码并尝试一下。咀嚼你的代码,尝试不同的想法,当他们发生在你身上,建立了一个技巧袋定制这个问题,当你继续。

    ——MarkusQ

    不要陷入试图使用C或Java或其他东西的陷阱。你会玩得又快又松,而且应该有一个不需要变量声明、编译等的工具。将有大量的机会来加强和重写它。 一旦你了解了它的工作原理。

        2
  •  5
  •   sstock    15 年前

    看一看 this blog post from BreakingPoint Labs . 他们正在讨论手动协议逆向工程和一组基于 PacketFu 使这项任务更容易。

    与您的问题相关的是一组工具,它们使识别和突出显示对数据包的更改变得容易。下面是一个示例屏幕截图,显示了使用颜色勾勒数据包差异: alt text http://www.breakingpointsystems.com/default/assets/Image/Blog%20Images/select_two_days.png

        3
  •  2
  •   Fernando Miguélez    16 年前

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

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

    • Examdiff Pro . 目录比较非常快。
    • Winmerge . 虽然不像examdiff-pro那么快,但它是开放源码,而且发展很快。这是我的第一选择。
    • Beyondcompare . 这是我知道的唯一一个文件比较工具,它可以完全满足您的需求,即同时比较try文件。
        4
  •  1
  •   AviD    16 年前

    只针对HTTP,我使用了一个很棒的工具 Effetech .
    (尽管现在来看,他们支持的不仅仅是HTTP…)

        5
  •  0
  •   Bogdan Gavril MSFT    16 年前

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

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

        6
  •  0
  •   Zoredache    16 年前

    如果你有一个捕获,你已经完成了以太,你可以阅读捕获,或者你可以做你的捕获与tcpdump。要捕获,请使用tcpdump命令 tcpdump-s 0-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
    

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