在 Lua Wireshark 解剖器中执行解剖功能?

Executing a function for dissection in a Lua Wireshark dissector?

我有一个 Lua Wireshark 解析器,其结构如下:

-- Initialize Protocol
-- Initialize Protocol Fields
-- Register Protocol Fields

-- DissectionFunction(tvbuf, pktinfo, root)

-- Initialize Protocol

-- Function definitions.

我编写了一个函数,我想用它来计算一些值,然后在解析器中使用这些值。所以我在解剖函数之外和函数定义部分编写了我的函数。

但是函数调用在dissector函数内部也是有效的,如果在dissector函数之外调用Wireshark无法识别。在 dissection 函数中调用它是非常低效的,因为它只需要执行一次,而是会为每一帧执行。

有没有办法在解剖函数之外调用它一次?

我不太清楚问题是什么,但是你可以在Lua

中进行以下操作
local function calculate_constant_value()
  return a * b + c
end
local my_constant_value = calculate_constant_value()

function proto.dissector()
  -- use my_constant_value here
end