问题标签 [wireshark-dissector]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3422 浏览

c++ - Wireshark 插件:使用每个 UDP 帧的多个数据包剖析有效负载

我正在编写一个 Wireshark 插件来剖析将多个应用程序级数据包放置在单个 UDP 帧中的协议。没有封闭协议指示帧中有多少数据包。因此,从本质上讲,来自网络的有效载荷将如下所示:

在我实际处理此信息的服务器代码中,我只是循环遍历帧直到到达末尾。在查看 wireshark 源代码中包含的插件时,我没有看到任何像这样循环的协议。

我知道其他协议每帧打包多个有效负载。在 Wireshark 解剖器中处理此类协议的规范或标准方法是什么?

0 投票
2 回答
2359 浏览

c - Wireshark Dissector:如何识别丢失的 UDP 帧?

您如何识别自定义 Wireshark 解析器中丢失的 UDP 帧?

我已经为CQS 提要参考页)编写了一个自定义解析器。接收此提要时,我们的其中一个服务器出现缺口。根据 Wireshark 的说法,某些 UDP 帧从未被接收到。我知道发送帧是因为我们所有的其他服务器都是无间隙的。

一个 CQS 帧由多个消息组成,每个消息都有自己的序列号。我的自定义解剖器向 Wireshark 提供以下数据:

我在自定义列中显示这些值中的每一个,如此屏幕截图所示:线鲨截图

我尝试向我的解析器添加代码,它只是保存最后处理的序列号(作为本地静态),并在解析器处理帧 where 时标记间隙current_sequence != (previous_sequence + 1)。这不起作用,因为可以随机访问顺序调用解析器,具体取决于您在 GUI 中单击的位置。所以你可以处理第 10 帧,然后是第 15 帧,然后是第 11 帧,等等。

我的解剖器有什么方法可以知道它之前的帧(或后面的帧)是否丢失?

解剖器是用 C 编写的。

(另请参阅serverfault.com 上的配套帖子

0 投票
2 回答
360 浏览

lua - Wireshark 的 Lua:Tvp.new_real() 不存在?

Wireshark 的 Lua 文档声称 Tvp 类有一个 new_real() 方法。但是,当我尝试在 Lua 脚本中使用此方法时,它似乎不存在。我正在为 Windows x64 使用 Wireshark 1.3.5(最新开发版本)。该方法是否已重命名?如果是这样,对什么?对于这个特定问题,是否有更好的支持论坛?

0 投票
1 回答
1231 浏览

ruby - ruby中的图书馆wireshark

我正在做我大学四年级的项目,这个项目的主题是实现一个网络分析仪,其网络界面接近于wireshark提出的建议。所以有必要用 ruby​​ 语言映射 wireshark 库,这将允许我在解析捕获的数据包之后。

我一直在网上寻找一些关于图书馆的手册或文档,但没有成功。在所有之后,我决定加入开发者邮件列表来发布问题并了解wireshark 库的开发。是否有任何手册或文档,因为每个编程库和任何想法都是受欢迎的。

提前致谢

0 投票
5 回答
3941 浏览

unit-testing - 如何测试 Wireshark 解剖器?

当您为 Wireshark 编写解析器时,您如何对其进行测试?在 UI 中寻找视觉输出对于一个重要的协议是不够的。

有没有对解剖器进行单元测试的好方法?

编辑:

协议帧的结构是动态的。解剖者必须以某种方式解释内容。

例如,如果第五个字段是一个字节数组作为第六个字段。如果它是两个你有一个双数组,如果它是三个你必须添加一个以零结尾的字符串。

这通常不会在日常工作捕获中发生。这就是为什么您需要合成捕获数据,即使是“不可能”的内容。

0 投票
3 回答
45262 浏览

wireshark - 如何将自定义协议分析器添加到wireshark?

我在wireshark 中查看了一个自定义协议。我认为如果wireshark可以为我解析它会很有用,这样我就不必解码十六进制。虽然我在我的程序日志中这样做了,但wireshark 会使用时间信息捕获整个对话,因此它在那里会更有用。

这很容易做到吗?

0 投票
2 回答
4745 浏览

makefile - 我如何编译这个插件?

我正在关注 foo 解析器示例,但想知道如何编译它。

foo 解剖器示例显示在此链接中:http: //www.wireshark.org/docs/wsdg_html_chunked/ChDissectAdd.html

您会注意到它提到了 interlink 目录包含我可以使用的支持文件的好示例,并且我需要修改 Makefile.am 和 makefile.common 等。我已经修改了这些以反映 foo 模块。

但是,现在我想知道如何构建它。我尝试运行 automake,但它抱怨没有 configure.in。抱歉,我对 gnu 构建环境还不太熟悉。

另外,是否可以独立构建此模块?还是我需要所有其他可用的wireshark 资源?我当然在ubuntu下安装了wireshark-dev。

0 投票
1 回答
420 浏览

c - 将 FT_UNIT32 字段解释为小端

我正在为自定义协议编写 Wireshark 解析器。但是,我有一个无符号 32 位整数的字段。它实际上是以小端形式传输的。我如何强制 Wireshark 将其解释为这样?

即我的 hf_register_info 结构包含

在我调用的解剖函数中

0 投票
1 回答
970 浏览

protocols - Wireshark解剖器:显示一个依赖于解剖树中前一个字段值的字段

我正在为专有协议在wireshark中开发一个插件。我有以下 3 个结构来定义协议的特征。

hf_register数组中存储的结构和格式信息如下:

这里我的子命令的格式信息是基于主命令的值。有没有办法获得这样的东西,以便可以根据主命令中存在的值来确定第二个字段子命令的值?

谢谢你的帮助,Mrunal

0 投票
1 回答
4386 浏览

lua - 在lua中编写wireshark解析器并将其设置在动态端口上


我有一个以下列方式工作的客户端服务器协议。
客户端发送带有服务器 ID 的 udp 广播(到固定端口)。
服务器接收到数据报,如果它与他的 id 匹配,他向客户端发送他正在监听的端口。
然后客户端打开到该端口的 tcp 连接。
我正在为这个东西在 Lua 中编写一个 Wireshark 解析器,我需要动态设置 tcp 连接的端口(我事先不知道服务器监听的女巫端口)。

我尝试过这样的事情:

我错过了什么?
提前致谢