Lua 允许我“读入”吗? Wireshark 过滤器文本框中的文本?

发布于 2024-11-08 12:54:35 字数 128 浏览 2 评论 0原文

我希望编写一个应用程序,读取 Wireshark 过滤器文本框中的任何过滤条件,然后使用 Lua 对其进行操作。有谁知道这是否可能?在深入学习 Lua 并将其与 Wireshark 一起使用之前,我想知道是否可能。

谢谢! 乔

I wish to write an app that reads whatever filter criteria is in the Wireshark filter text box and then manipulate it using Lua. Does anyone know if that is possible? I would like to know if it is possible before I get to deep into learning Lua and using it with Wireshark.

Thanks!
Joe

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

淡淡離愁欲言轉身 2024-11-15 12:54:35

不,您无法读取它,但您可以设置过滤器并将其应用于当前捕获。请参阅 Wireshark 文档中的 GUI 支持部分。

要设置显示过滤器文本框的文本,请使用set_filter(text)
要应用显示过滤器的当前文本(使其生效),请使用 apply_filter()

避免从解析器内调用 apply_filter() (重新调用解析器可能会出现无限循环)。该函数更适合菜单操作或按钮操作。

编辑:要将您自己的 get_filter() Lua 函数添​​加到 Wireshark 的 Lua API(未经测试):

  1. 添加名为 funnel_get_filter() 的函数在funnel_stat.c< /a> (例如,参见第 468 行)。
  2. get_filter 添加到 funnel_ops_t (funnel.h:80)。
  3. funnel_get_filter 添加到 funnel_ops,位于 funnel_stat.c:546tap-funnel.c:90< /代码>。确保根据 funnel_ops_t 将其添加到正确的数组索引处。
  4. 将以下代码复制到 wslua_gui.c 然后编译:

/* TODO: 测试我!! */

WSLUA_FUNCTION wslua_get_filter(lua_State* L) { /* Get the text of the display filter textbox */
    const gchar* text;
    text = ops->get_filter();
    lua_pushstring(L,text);
    WSLUA_RETURN(1); /* The display filter textbox's text. */
}

No, you can't read it, but you can set the filter and apply it to the current capture. See the GUI Support section in the Wireshark docs.

To set the text of the display filter textbox, use set_filter(text).
To apply the current text of the display filter (make it take effect), use apply_filter().

Avoid calling apply_filter() from within a dissector (infinite loop can occur from re-invoking the dissector). The function is better suited in a menu action or a button action.

EDIT: To add your own get_filter() Lua function to Wireshark's Lua API (untested):

  1. Add a function named funnel_get_filter() in funnel_stat.c (see line 468 for example).
  2. Add get_filter to funnel_ops_t (funnel.h:80).
  3. Add funnel_get_filter to funnel_ops at funnel_stat.c:546 and at tap-funnel.c:90. Make sure you add it at the correct array index according to funnel_ops_t.
  4. Copy the code below to wslua_gui.c and then compile:

/* TODO: Test me!! */

WSLUA_FUNCTION wslua_get_filter(lua_State* L) { /* Get the text of the display filter textbox */
    const gchar* text;
    text = ops->get_filter();
    lua_pushstring(L,text);
    WSLUA_RETURN(1); /* The display filter textbox's text. */
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文