Wireshark定制LUA解剖器:格式显示

时间:2018-12-12 14:13:25

标签: wireshark-dissector

让我说我想有一个名为ABC的字段,它将是2个无符号字节:0到65535 但是,所表示的实际值是-5.0到60.0,并且在位之间转换为实际值。

我有一些XML定义了消息及其元素:名称,位置,位值(最小和最大),实际值(最小和最大),如何存储在数据库中(XML是从数据库输出的) ),转化类型。

我正在编写一些从XML到LUA格式的转换工具。我应该如何编写解剖器,以便看到介于-5到60之间的值?

谢谢

1 个答案:

答案 0 :(得分:0)

您需要确保它不是uint16,而是浮动的。

local abc_field = ProtoField.uint16("yourproto.abc", "ABC Value")

收件人:

local abc_field = ProtoField.float("yourproto.abc", "ABC Value")

当您添加ABC字段时:

subtree:add(ABC, buf(0, 2))

进行计算:

subtree:add(ABC, buf(0, 2):bitfield(0, 16) * (65/65536) - 5)