2017-10-05 44 views
1

我是新编码'c'Wireshark解剖器,所以我有一个非常基本的问题解决方法来解码字段具有可变长度,这意味着在某些数据包它可以是1字节,在其他数据包中可以是8字节。Wireshark解密器:如何解码变长字段

有没有一种模式可以解决这个问题?什么是最好的方法?例子会很棒!

谢谢。

回答

2

指定将项目添加到树时的长度。例如,你可以使用proto_tree_add_item()最一般的情况下,宣布proto.h为:

WS_DLL_PUBLIC proto_item * proto_tree_add_item(proto_tree *tree, int hfindex, tvbuff_t *tvb, const gint start, gint length, const guint encoding);

因此,在一个案例:

proto_tree_add_item(tree, hfindex, tvb, start, 1, encoding); 

...而在另一种情况:

proto_tree_add_item(tree, hfindex, tvb, start, 8, encoding); 

Wireshark代码库包含许多解剖器,因此您可以使用许多示例来帮助您,因此随时可以浏览e代码以及各种自述文件。