问题标签 [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.
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 有:
谢谢
wireshark - Wireshark dissector - 如何使用 dissectortable:add(pattern, dissector) 与任何模式?
我正在为 Wireshark 创建一个自定义解析器。我正在将我的解剖器添加到解剖器表中,就像这样......
但是,不是我的解析器只处理 udp 端口 7777,而是希望它处理任何 udp 端口或至少一个非常大的范围。
我怎样才能做到这一点?
它在文档中说,它说我可以用一个范围替换 7777 (模式),但我不确定它的语法是什么。
谢谢!
wireshark - 如何编译wireshark解剖器插件?
我正在写一个wireshark解剖器插件。我浏览了 wireshark 文档的第 9 章以及其他一些网站。他们说Makefile.common
并且Makefile.am
必须修改以反映相关文件和解剖器名称。我已经在我的 Mac 上安装了 wireshark。在Applications/Wireshark.app
文件夹中搜索 Makefiles。没找到。编译解剖器插件的过程是什么?
提前致谢!
ssl - 如何在wireshark中解密加密的应用程序数据?
我在客户端和服务器之间有一些 HTTPS/SSL 数据包。我需要在 SSL 握手后解密应用程序数据。我也有一个 SSL 服务器密钥。我将wireshark 配置为获取私钥,如下所示。
我去了编辑-> 首选项-> 协议-> SSL -> 将私钥添加到 RSA 密钥列表。我在服务器上配置了一个 JKS 密钥库,并将其转换为 PKCS 格式并提供了wireshark。但我仍然无法解密数据。请帮忙
c - Wireshark 解析器配置参数
我已经在 Lua 中为自定义协议编写了解析器,现在我将在 C 中重构它。问题是解析器需要一些运行时参数(解密密钥),这些参数根据情况而有所不同。在 Lua 中,这不是问题,因为所需的参数可以硬编码并轻松编辑 - 这显然不适用于已编译的 C 模块。
如何将配置参数传递给 Wireshark 解析器?我可以从文件系统访问它,但这似乎是一种讨厌的方式。
python - 使用 pyshark 时导入错误
我正在尝试在 Windows 中安装 pyshark。[Python 2.6]。当我尝试在我的 python 代码中导入 pyshark 时。我收到以下错误 -
看起来 lxml.objectify 不可用,但我已经安装了 lxml。
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(...)
- 我没有分配足够的内存并且它已经溢出。通过增加分配大小来修复。
lua - Lua 中的 Wireshark Dissector 错误:“树项 ProtoField/协议句柄无效”
我完全是 Lua 的新手,这是我第一次尝试编写wireshark 解剖器。
我想通过 Lua 脚本分析没有密码的 SSH。我编写了一个脚本来检测第一步的数据包长度和填充长度。
这是我的脚本:
在我通过 Evalutate Lua 运行代码并应用测试过滤器后,我发现 Packet Details 中有错误:
第 19 行对t:add(f_packet_length...
应该行。
谁能帮忙解释这个错误?
提前致谢。
c - Wireshark tcp_dissect_pdus 长度未知
我正在尝试剖析在 TCP 之上运行的某些协议。消息有时会分成不同的数据包 - 不幸的是,我没有办法确定消息的预期长度(协议没有宣布这一点)。确定消息传输完成的唯一方法是等待FIN,ACK
设置了标志的 TCP/IP 数据包。
问题是我的解剖器甚至不知道 TCP/IP 协议(实际上也不应该关心它)。有没有办法重新组装所有数据包,直到FIN,ACK
看到?
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 代码时,我得到:
预先感谢您的回复。