我们的团队目前正在构建一个wireshark解析器,该解析器可以解析特定类型的数据包。我们已经基于一个模板构建了我们的包。
假设我们构建的插件的名称是ABC,现在我们的目标是,每当我们在wireshark的过滤器框中键入ABC时,我们都希望看到(捕获)我们发送的数据包。

正如您在图像中看到的,如果我们按ip.destination过滤,wireshark就知道这是我们感兴趣的数据包。当前的任务是,当我键入插件名称ABC时,我希望得到相同的结果。
如果问题不是很清楚,我深表歉意,我们才刚刚开始,还处于初始阶段。任何提示或建议都是非常感谢的!
发布于 2013-05-29 22:54:27
像往常一样分析插件,如this页面中所述。正如链接中所述,当您在proto_register_ABC()下使用proto_register_protocol()注册协议时,作为第三个参数提供的缩写字符串将注册为过滤器名称。
有关创建插件的信息可以在"doc/README.plugins“文件中找到。
如果您想为数据包中的数据结构注册筛选器(您可以再次查看上面的链接以获取说明),请查找函数proto_register_ABC() (这里的ABC是您的协议名称),将您的数据成员添加到静态数组"hf_register_info hf[]“中,如下所示。
void
proto_register_ABC(void)
{
static hf_register_info hf[] = {
{ &hf_foo,
{ "FOO member", "foo", FT_BYTES,
BASE_NONE, NULL, 0x0, NULL, HFILL }}
};必须声明hf_foo。您输入的第二个字符串:
{ "FOO member", "ABC", FT_BYTES,
BASE_NONE, NULL, 0x0, NULL, HFILL }}例如,第二个字符串"foo“是您的过滤器名称。
现在,如果您的解析函数dissect_ABC()工作正常,那么您将能够使用"ABC“自动过滤您的协议数据包。您还可以查看其他剖析是如何做到这一点的,例如"TCP“。查看"epan/dissectors/packet-tcp.c“。
https://stackoverflow.com/questions/16798851
复制相似问题