如本页所述,像往常一样制作插件解析器。如链接中所述,当您使用proto_register_protocol()
under注册协议时proto_register_ABC()
,作为第三个参数提供的缩写字符串将注册为过滤器名称。
有关创建插件的信息可以在“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”。