问题标签 [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 回答
883 浏览

udp - 更改解剖器中的wireshark首选项?

我正在为 C 中的 Wireshark 创建一个解析器,用于 UDP 之上的协议。由于我使用的是启发式剖析,但存在与我的相同端口具有标准剖析器的另一种协议,因此我的数据包被剖析为其他协议。为了让我的解析器工作,我需要启用“首先尝试启发式解析器”UDP 首选项,但我希望在注册插件时更改该属性(在代码中),因此用户不需要手动更改它。我注意到在 epan/prefs.h 上,函数prefs_set_pref存在!但是当我在我的插件上使用它时,Wireshark 在启动时崩溃并出现总线错误 10。我想做的事情可能/正确吗?

所以我试过这个:

G_MODULE_EXPORT void plugin_register(void){ prefs_set_pref("udp.try_heuristic_first:true"); // My proto_register goes here }

由于 epan/prefs.h 有:

谢谢

0 投票
1 回答
2569 浏览

wireshark - Wireshark dissector - 如何使用 dissectortable:add(pattern, dissector) 与任何模式?

我正在为 Wireshark 创建一个自定义解析器。我正在将我的解剖器添加到解剖器表中,就像这样......

但是,不是我的解析器只处理 udp 端口​​ 7777,而是希望它处理任何 udp 端口​​或至少一个非常大的范围。

我怎样才能做到这一点?

它在文档中说,它说我可以用一个范围替换 7777 (模式),但我不确定它的语法是什么。

谢谢!

0 投票
2 回答
985 浏览

wireshark - 如何编译wireshark解剖器插件?

我正在写一个wireshark解剖器插件。我浏览了 wireshark 文档的第 9 章以及其他一些网站。他们说Makefile.common并且Makefile.am必须修改以反映相关文件和解剖器名称。我已经在我的 Mac 上安装了 wireshark。在Applications/Wireshark.app文件夹中搜索 Makefiles。没找到。编译解剖器插件的过程是什么?

提前致谢!

0 投票
0 回答
1528 浏览

ssl - 如何在wireshark中解密加密的应用程序数据?

我在客户端和服务器之间有一些 HTTPS/SSL 数据包。我需要在 SSL 握手后解密应用程序数据。我也有一个 SSL 服务器密钥。我将wireshark 配置为获取私钥,如下所示。

我去了编辑-> 首选项-> 协议-> SSL -> 将私钥添加到 RSA 密钥列表。我在服务器上配置了一个 JKS 密钥库,并将其转换为 PKCS 格式并提供了wireshark。但我仍然无法解密数据。请帮忙

0 投票
1 回答
321 浏览

c - Wireshark 解析器配置参数

我已经在 Lua 中为自定义协议编写了​​解析器,现在我将在 C 中重构它。问题是解析器需要一些运行时参数(解密密钥),这些参数根据情况而有所不同。在 Lua 中,这不是问题,因为所需的参数可以硬编码并轻松编辑 - 这显然不适用于已编译的 C 模块。

如何将配置参数传递给 Wireshark 解析器?我可以从文件系统访问它,但这似乎是一种讨厌的方式。

0 投票
2 回答
2617 浏览

python - 使用 pyshark 时导入错误

我正在尝试在 Windows 中安装 pyshark。[Python 2.6]。当我尝试在我的 python 代码中导入 pyshark 时。我收到以下错误 -

看起来 lxml.objectify 不可用,但我已经安装了 lxml。

0 投票
1 回答
82 浏览

c - Wireshark 插件导致“堆损坏”

我正在编写一个wireshark 解剖器并遇到奇怪的内存管理问题。我有以下功能:

此函数用于多个地方(proto_reg_hanoff_foo以及dissect_foo),因此我不会将结果分配给任何特定的池。

在我的 proto_reg_handoff_foo我得到函数的返回值,将它复制到另一个内存位置并释放原始结果:

奇怪的是,我得到了一个窗口触发的断点(或调试器之外的普通崩溃)wmem_free(NULL, tmp)。除了错误发生在wmem_core.c:72.

注意我已经修改我foo_hex2bytes的接受第三个wmem_allocator_t参数并简单地传递wmem_epan_scope()(或wmem_packet_scope()在适当的情况下) - 这会在应用程序关闭时导致类似的崩溃。我也尝试过使用malloc()并手动清除所有内存(有时会起作用,有时null pointer即使应用程序只使用 14K 内存并且还有更多可用内存也会返回)。

编辑:问题似乎存在sscanf(...)- 我没有分配足够的内存并且它已经溢出。通过增加分配大小来修复。

0 投票
1 回答
2189 浏览

lua - Lua 中的 Wireshark Dissector 错误:“树项 ProtoField/协议句柄无效”

我完全是 Lua 的新手,这是我第一次尝试编写wireshark 解剖器。
我想通过 Lua 脚本分析没有密码的 SSH。我编写了一个脚本来检测第一步的数据包长度和填充长度。

这是我的脚本:

在我通过 Evalutate Lua 运行代码并应用测试过滤器后,我发现 Packet Details 中有错误:

第 19 行对t:add(f_packet_length...应该行。

谁能帮忙解释这个错误?
提前致谢。

0 投票
1 回答
319 浏览

c - Wireshark tcp_dissect_pdus 长度未知

我正在尝试剖析在 TCP 之上运行的某些协议。消息有时会分成不同的数据包 - 不幸的是,我没有办法确定消息的预期长度(协议没有宣布这一点)。确定消息传输完成的唯一方法是等待FIN,ACK设置了标志的 TCP/IP 数据包。

问题是我的解剖器甚至不知道 TCP/IP 协议(​​实际上也不应该关心它)。有没有办法重新组装所有数据包,直到FIN,ACK看到?

0 投票
2 回答
561 浏览

c - Wireshark 解析器 UINT64 位掩码

我看到 in 中header_field使用的位掩码字段proto_register_field_array(const int parent, hf_register_info *hf, const int num_records);guint32,因此我不能使用 64 位掩码。反正我可以去吗?

具体来说,我有一个 60 位字段,因此我试图为此创建一个具有类型FT_UINT64和位掩码的字段0xfffffffffffffff,但是当然,在编译 C 代码时,我得到:

预先感谢您的回复。