gpt4 book ai didi

lua - 如何为 Lua Wireshark Dissector 创建 Protofield 子数组

转载 作者:行者123 更新时间:2023-12-02 21:40:25 33 4
gpt4 key购买 nike

给出以下示例:

local f= mycoolprotocol.fields
f.Length = ProtoField.uint32("MCP.Length","Length",base.DEC)
f.MsgType = ProtoField.uint16("MCP.MsgType","MsgType",base.DEC)

我已经声明了 2 个原型(prototype)场。但想象一下我有一个重复的组或一组项目:

消息正文如下所示:

struct person
{
int16 age;
string name;
}
person[] p = new person[2];

理想情况下,我想在 Wireshark 中为该组创建一个子树

+ Persons
+ Person1
name
age
+ Person2
name
age

问题是我不知道如何在 Lua 中构建它。这声明了 2 个原型(prototype)域:

f.name = Protofield.string("MCP.name","name","Text")
f.age = ProtoField.uint16("MCP.age","age",base.DEC)

但我想创建该组的动态数组,所以我可以这样做:

subtree:add_le( f[0].name, buffer(x,y)) 

那么,有没有一个Protofield.ProtoFieldArray?是否可以?欢迎任何其他想法。

谢谢。

另外,作为引用: http://ask.wireshark.org/questions/28038/how-to-create-a-protofield-sub-array-in-lua

最佳答案

事实证明我可以重用相同的字段来构建树。

所以用伪代码来说:

begin loop
subtree= mainsubtree:add(a,buffer())
subtree:add(f.name, buffer(x,y))
subtree:add(f.age, buffer(x+name.length,y))
end

因此 f.name f.age 不会被新值覆盖。我猜它只是 ProtoField

的占位符

关于lua - 如何为 Lua Wireshark Dissector 创建 Protofield 子数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20539474/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com