问题标签 [protofield]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2286 浏览

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

给定以下示例:

我已经宣布了 2 个 Protofields。但是想象一下我有一个重复的组或一组项目:

消息正文如下所示:

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

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

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

那么,有没有Protofield.ProtoFieldArray?可能吗?欢迎任何其他想法。

谢谢。

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

0 投票
1 回答
799 浏览

lua - 如何在 lua dissactor 的 Protofield.string() 函数中将表数据作为参数传递?

我在 lua 脚本中为协议编写了​​一个 dissactor。Dissactor 工作正常。但我想知道 dissactor 文件中的一个更新。

我为不同类型的消息创建了一个表。下面是表格——

下面是一个 protofield,我为此协议创建了它并将其注册为一个字段。

如果我将在wireshark 中对任何消息字段应用过滤器,它将显示“abcd.message_type = some_valve”作为所有消息类型的过滤器值。

我想根据不同的消息类型显示此过滤器值,例如 MAC ID 的“abcd.mac_id = some_value”,而不为每种消息类型创建单独的原型字段。

是否可以在 message_types 表的帮助下做到这一点?

0 投票
2 回答
1391 浏览

filter - Lua - 显示字段 ASCII Dissector

我目前正在研究我的第一个 Protocol Dissector。我面临一个我无法解决的问题。基本上我有一个 8 字节长的字段(但定义超过 9 个字节),所以我创建了一个位域来定义这个原型域。

以下是我迄今为止测试过的领域的定义:

然后我通过以下方式将它添加到解剖树中:

最终给出以下错误:

如果你们中的任何人有任何建议,我将不胜感激。

先感谢您,

马丁

编辑1:

我编写了这段代码,它将从字段值的每个字节中获取 ASCII 表值:

我不知道如何使它工作,以便它在数据包视图上显示 ASCII 值。

0 投票
1 回答
127 浏览

lua - 什么是 VoidString 对象?

我正在为 Wireshark 编写一个 LUA Dissector,并且已经阅读了一个在创建 ProtoField 对象时可以传递的 VoidString 对象。有关更多信息,请参阅https://wiki.wireshark.org/LuaAPI/Proto#ProtoField。我不想再谈论这个对象以及使用它的目的是什么。如果我单击链接“VoidString”,则会不幸显示一个空白页面,因为似乎错过了该对象的文档。我用谷歌搜索了它,但一无所获。有任何想法吗?

提前致谢!

0 投票
2 回答
503 浏览

reflection - 声明后如何访问 ProtoField 的名称?

声明后如何访问 ProtoField 的 name 属性?

例如,类似于以下内容:

myproto = Proto("myproto", "我的原型")

myproto.fields.foo = ProtoField.int8("myproto.foo", "Foo", base.DEC)

打印(myproto.fields.foo.name)

我在哪里得到输出:

0 投票
1 回答
78 浏览

lua - Wireshark Lua Dissector 响应请求

有人知道如何将 Protofield.framenu 用于 frametype.RESPONSE 和 frametype.REQUEST 用于wireshark 中的箭头,并标记ACK 和DATA 之间的Sequencenumber?

非常感谢!